00360
RUCS ET ASTUCES
IDOUILLE
CTU ALITE
OURRIER DES
LECTEURS
ITES-VOUS BONNE
IMPRESSION ?
ANCS D’ESSAI JEUX
KENUMEROTATION
DES PROGRAMMES
BINAIRES
RAITEMENT DE
L’IMAGE
EDOR
ANDEROLE
CCELERATEUR
OMPILATION
Satellite
ERCULE II
MSLETTRES
E MESSIE
I
I
I
I
I
ar
i
CPC n'^ 36 ‘ Juillet/Août 1988
3
■Qj R UCS ET AST UCES
■ Pierre TACONNET m
TURBO-CLAVIER AZERTY
Turbo-Clavier est un de ces programmes oui ne tournent pas
sur les CPC munis d'un clavier AZERTY. Une petite adapta¬
tion est nécessaire. Patrick Peulmeulle, de Carnin, nous pro¬
pose cette adaptation fumante I
Modifiez les lignes suivantes :
310 KEY DEF 67J,97,65J43:KEY 143, "auto"
390 KEY DEF 29,1,109,77,150:KEY 150, "mode"
et créez cette ligne :
391 KEY DEF 69,1,113,81,151:KEY 151, "data"
Pour l'utilisation "auto", actionnez CTRL A
Pour l'utilisation "data", actionnez CTRL Q
Pour l'utilisation "mode", actionnez CTRL M
Enfin, pour récupérer la virgule, faites la même chose avec
les lignes 580, 660 et 661. Vous aurez remarqué que seule
la première donnée est à modifier, c'est-à-dire le numéro de
la touche.
NOUVEAU MODE, MEME ECRAN
Savez-vous qu'il est possible de changer de mode en con¬
servant l'écran intact ? Voici le truc de Michel P^ost,
d'Auberive.
La formule : CALL &bc06,&40:MODE x:CALL &bc06,&c0.
Où X représente la valeur du nouveau mode.
Pour une oage écran réalisée en mode 1 :
10 INPUT "Nom de la page";nom$
20 MODE 2
30 LOAD nom$:CALL &bb18
40 CALL &bc06,&40:MODE 1:CALL &bc06,&c0:
CALL &bb18
Dans ce cas, l'espace &4000 à &8000 est détruit.
BIZARRERIES APPARENTES
FOR N = 0 TO &7fff Bon
FOR N=0 TO &8000 Mauvais
FOR N = 0 TO 32768 Bon
FOR N = &7fff TO &ffff Mauvais
FOR N = &7fff TO 65535 Bon
FOR N = &8000 TO &ffff Bon
FOR N = 0 TO &ffff Mauvais
Etant donné que PRINT HEX$(65535) donne &ffff mais que
PRINT &ffff donne -1, qu'en pensez-vous ?
ECRITURE RAPIDE (suite)
Dans CPC N®34 se trouvait une routine de Alain Tauber accé¬
lérant notablement l'exécution de l'instruction PRINT. Voici
un complément de la part de Frédéric Bellec, de Moulins.
Le programme de démonstration ayant, pour une raison obs¬
cure disparu de la liste (notez au passage que les caractères
manquants avant IMPR$ sont des arobas - -), vous êtes invité
à utiliser en lieu et place :
Il est important de faire un CALL calcul, adresse, routine plu¬
tôt qu'un CALL variable où variable aurait été auparavant
initialisé avec l'adresse de début de la routine. En effet, cette
routine étant contenue dans une chaîne, puisque relogeable,
elle peut circuler en mémoire, l'adresse de début s'en trau-
vant modifiée I Malgré cela, rien n'empêche d'utiliser des
GOSUB routine pour éviter l'écriture des PEEK ( IMPR$ etc.
Ce qui donne :
3
Pour 664 et 6128, les codes c8 et b 1 en ligne 30 doivent être
remplacés respectivement par c3 et b/ afin de préciser
l'adresse contenant le mode d'écran en cours d'utilisation
(&b7c3) pour disquette, &blc8 pour cassette). Mais les
1 OOème et lOlème codes en ligne 70, fc et 9e, représentent
l'adresse de début de la matrice de caractères, en supposant
ue le CPC fasse un SYMBOL AFTER 0. Simple commodité
e calcul I Cette adresse est facile à calculer. Prenons le cas
du 6128. Au départ, HIMEM = 42619. Mais comme à l'ini¬
tialisation le système simule un SYMBOL AFTER 240,
l'adresse de départ de la matrice de caractères (rappelons
tout de même que l'on suppose que l'on parte du CHI<$(0)),
est égale à (HIMEM-1), qui est l'adresse de début matrice
du CHR$ (240), moins (25o-16)*8 où 256 est le nombre total
de caractères, 16 est le nombre de caractères déjà réservés
et 8 le nombre d'octets d'un caractère.
Cela signifie donc que pour un 464 sans lecteur de disquette
dont le HIMEM est positionné à 43903 au départ, les deux
codes hexadécimaux en lieu et place de fc &9e seront :
(43903 + 1 ) - (256-16) * 8 soit 41984 soit encore &a400 ce
? ui nous donne les codes 00 &a4.
out ceci n'est valable que si aucun fichier binaire n'est chargé
c'est-à-dire si le HIMEM n'a pas été rabaissé par MEMORY.
Voyons tout de même la solution dans ce cas.
Prenons l'exemple d'un fichier "TRUC.BIN" dont on suppose
qu'il commence en 36864 (&9000). On évitera de faire un
MEMORY 36863 (&8fff) car les 16 derniers caractères (240
à 255) seraient perdus. Alors, on abaissera ce HIMEM de
16*8 ce qui entraînera HIMEM = 36863 - (16*8) soit 36735
(&8f7f). Nous trouverons donc en début de programme les
lignes suivantes :
La ligne 40 nous permet de réserver de la place pour les
caractères et ainsi de rabaisser la mémoire à 3^4943 (&887f)
qui correspond à HIMEM.
Si, par exemple, la mémoire est libre à partir de 42000, rien
ne vous empêche de placer la routine TURBOPRINT de
42000 à 42149 et de "poker" l'adresse dont nous parlions
au début en 42099 et 42100.
Splendide, non ? Magnifique démonstration I
5"1/4 MAITRE
Encore ? Oui, encore I Et pour la simple et bonne raison que
voilà une façon de rendre maître un 5" 1 14 sans modifier votre
CPC. En outre, cela peut être considéré comme un inconvé¬
nient, mais aussi comme un avantage, cette opération décon¬
necte le lecteur 3" 1/2 de série.
Il suffit de se munir d'un peu de fil, et d'un interrupteur à deux
positions (pas de poussoir I).
Vous soucierez le fil, comme indiqué sur la figure, sur la piste
Drive Select 1 vers le 5 volts via l'inter. La piste Drive Select
est la piste 12 et correspond à la piste 23 du connecteur môle
situé à l'arrière du CPC.
En position ouvert, utilisation des deux lecteurs, le 3" 1/2 étant
A: et maître. En position fermé, utilisation du 5" 1/4 en lec¬
teur A : et déconnexion du 3" 1/2.
Raymond Ligozat, de Sisteron, a réalisé cette "bidouille"
avec un 5" 1/4 Toshiba double face.
nmmmmm
• 5 vo/ts
•>
4
CPC n°36- Juillet/Août 1988
* MICROIDS
Le CES de Chicago a été l'occasion de
remises de récompenses (des Awards
comme ils disent aux States). Vaus savez
déjà que Microïds et Broclerbund Soft¬
ware se sont associés pour la distribution
des produits de la compagnie française
aux Etats-Unis.
C'est à Superbike Challenge (Grand Prix
500cc, ici-bas), vendu à 40 000 exem¬
plaires outre-Atlantique que l'Award a
été décerné pour la mention produit
innovant de l'année 88. Non content de
cela, Microïds présentait "Dowhill Chal¬
lenge" (ou Super Ski sous nos latitudes)
en exclusivité au CES. Peut-être un futur
hit ?
En Angleterre, c'est Super Ski spécial
Eddie Edwards. Si le nom vous est
inconnu, sachez qu'il s'agit d'un skieur
britannique oui s'est distingué aux [
olympiques d'hiver de Cafgary en
tant le record de saut à ski anglais.
jeux
I bat-
—Jfè
* LORICIELS
* INFOGRAMES
Ne reste pas inactif durant les vacances
d'été afin de vous proposer dès la,ren¬
trée de nouveaux (eux avec quelques
surprises. En attendant, sont annoncés
Mata-Hari, un jeu d'arcade/aventure
ayant pour cadre la Première Guerre
mondiale et le monde de l'espionnage.
Ensuite, une suite : COBRA II. Le héros
japonais est de retour avec de nouveaux
décors et de nouveaux personnages...
De plus, l'émission du mercredi "on va
gagner" sur FR3 utilise Mach 3 pour
support ludique. Ce dernier succède ainsi
à Space Racer pendant tout l'été et en
direct du Futuroscope de Poitiers.
Qui va distribuer les logiciels PSS en France ? Devinez ? Infogrames, bien sûr I Les
logiciels concernés sont : Bataille pour RFA, un wargame futuriste ayant pour cadre
l'Europe et mettant en jeu l'OTAN et le Pacte de Varsovie. Pegasus Bridge se déroule
dans le passé, le 5 juin 1944 (la veille du débarquement sur les côtes françaises).
Le joueur peut se placer dans la peau de l'un des adversaires et affronter aussi l'or¬
dinateur. Enfin, Sorcerer Lord vous interpelle quelque part au niveau des aventu¬
res, épiques comprenant un seigneur des ténèbres avec quelques pouvoirs magiques
en prime.
Bob Morane strikes back, un petit plongeon dans le Grand Bleu pour le héros d'Henri
Vernes. Sept parties composent la saga : un combat à scooter, une poursuite en
bathyscaphe, une traversée de champs de mines, un repérage des ennemis sur la
carte, combat cantre les affreux, etc. Comme toujours, le logiciel est livré avec un
roman "Opération Atlantide", une B.D. "Ecume de sang", un guide traitant des
techniques de plongée et un jeu de rôle. Tout cela pour 199 F sur disque CPC ou
149 F sur K7.
CPC n° 36- Juillet/A oût 1988
5
• SLORA SARL
Kontact Gold 2000 est un lubrifiant pro¬
tecteur conditionné en bombe aérosol.
Son rôle est de faciliter le glissement des
métaux constituant les connecteurs. Donc
moins d'usure mécanique et une durée de
vie prolongée des composants coûteux.
Ce produit est tout particulièrement
recommandé pour les métaux suivants :
or, argent, zinc, rhodium, palladium,
etc.
Pour tous renseignements, contacter :
SLORA SARL
BP 91
57602 FORBACH
• HEWSON
Nous avons déjà annoncé Battlecar
Marauder ; en voici une photo. Rappe¬
lons qu'il s'agit d'une 'bataille'' sur
route ayant pour héros un pilote de véhi¬
cule blindé et très bien armé. Vous
devriez vous faire des sensations dès le
28 juin, date de sortie de ce logiciel
d'arcade.
DUC»'*"*
amstrao
CPC
• NATHAN
L'opération Nathan-vacances propose à
tout acheteur de 2 logiciels éducatifs, un
cahier de vacances gratuit. Dans la
qamme CPC, vous trouverez 8 logiciels
J'apprends à écrire, à lire...).
.a gamme PC comprend également 8
ogiciels sur 5" 1/4 et 3" l/2. Les com¬
patibles PC ont maintenant leurs logiciels
de français traitant les programmes du
CP au CM2. Dans chaque volume, vous
trouverez 50 exercices plus 2 récréa¬
tions. Chaque disquette de la série de 4
sera vendue au prix de 245 F sur 5" 1 /4
et 3" 1/2.
6
CPC n^Sô- Juillet/Août 1988
• MICROMANIA
• GREMLIN
Après s'être battu pour obtenir les droits du personnage (la réputation de Walt Dis¬
ney dans ce domaine est bien établie), Gremlin annonce un logiciel de jeu ayant pour
héros la célèbre souris Mickey. Les fans de Disney Channel auront leur souris dès
le 4 juillet. Bon appétit I
Un nouveau service sur le 36.15 vient
d'apparaître : il s'agit du serveur Micro-
mania. Celui-ci contient 800 descriptions
de logiciels, un hit-parade. Les passion¬
nés de Pokes et de vies infinies trouve¬
ront une rubrique digne d'intérêt (bien
que les solutions proposées aient un air
de déjà-vu I).
Puisque M. Micromania est content, il
offre 10 logiciels par jour en juillet et en
août aux personnes qui répondront cor¬
rectement à un questionnaire concernant
l'informatique ludique.
• EMR
Ce sigle étrange signifie Electro Music Research. Autant dire que cette société est spécialisée dans la musique et son application
informatique par l'intermédiaire de la norme MIDI. Les logiciels et connecteurs MIDI étaient déjà disponibles sur CrC, voici
qu'arrive le logiciel musical dédié au PCW (depuis le temps que l'on vous dit qu'il est possible de faire autre chose que du
traitement de texte). Alors, intéressés ? Il faut écrire en Angleterre à l'adresse suivante :
EMR
14, Mount Close
Wickford, Essex SS11 8HG
U.K.
CPC n° 36- Juillet/Août 1988
7
SAARI
Scan
En composant le 36.16 puis le code
SAARI, vous accéderez au serveur de la
société. Vous y trouverez une présenta¬
tion de la société et des produits, une
actualité et surtout un télé-diagnostic. Ce
dernier permet aux possesseurs de logi¬
ciels SAARI, une recherche dans une
banque de données afin de trouver la
solution à leur problème logiciel.
lPser
• PALACE
C'est pas possible I Ils ont osé I La pulpeuse créature qui orne la couverture de Bar-
barian est de retour. Les fans de Russ Meyer vont pouvoir s'en donner à cœur joie
puisqu'il est possible dans "Barbarian II'' de se glisser dans la peau de l'héroïne.
De plus, il y aura de nombreux tableaux, des monstres et autres amuse-gueules.
Quand je pense qu'il faudra attendre le mois d'août.
• EDIMICRO
J'ai la mémoire qui flanche. Au lieu de
vous bourrer de Pharmaton, essayez
plutôt les micro-mémentos : ce sont de
petits ouvrages concernant les logiciels
très courants sur compatibles IBM.
La première série concerne SPRINT -
VP - PLANNER - WORD 3 & 4. Sont
bientôt annoncés : dBASE, FRAME¬
WORK, LOTUS 1, 2, 3 et QUATTRO.
Le prix de chaque volume est de 59 F.
M.Djama
if* Edimicro
8
CPC n° 36- Juillet/Août 1988
f
:■
• AVTEL SARL
CPSERV
Un kif serveur pour CPC, cela vous
tente ? Voici donc CPServ qui comprend
un boîtier de liaison, une série d'instruc¬
tions supplémentaires afin de gérer les
opérations de télécommunication, un
micro serveur tout prêt et un composeur
vidéotex pour les graphismes.
Si vous êtes tentés, allez-donc voir au
66.76.07.26., le serveur est disponible
en permanence.
Prix du kit : 550 F.
S'adresser à :
AVTEL SARL
9 bis, rue des Moulins
30000 NIMES
• MINDSCAPE
Trois jeux futuristes et sophistiqués sont
proposés par la société américaine.
Captain Blood ne vous est pas inconnu,
mais la version PC risque d'être
surprenante.
Colony, également sur PC, utilise le 3D
avec traitement des faces cachées, numé¬
risation sonore. Il s'agit d'un logiciel
mêlant l'arcade et l'aventure dans lequel
vous êtes un représentant de l'ordre,
explorant une colonie envahie par des
extraterrestres.
Visions of Aftermath : the Boomtown
présente une vision apocalyptiaue de
l'après-guerre nucléaire. Il faudra
apprendre à survivre dans cet environ¬
nement hostile. Bonne chance I
• GRANDSLAM
The Flinstones, cela vous dit quelque chose ? Les Pierrafeu ? Bien sûr, il s'aait de
cette famille préhistorique aux multiples soucis. Vous retrouverez donc Wilma,'rred,
Pebbles, Bonney et les autres sur.une disquette. Il s'agit en fait d'une série d'épreu¬
ves qui doit mener le père de la famille jusqu'au terrain de bowling.
KONTAKT
OR 2000
POUR CONTACTS ET
CONNEXIONS PLAQUEES
OR OU METAL NOBLE
Kontakt OR 2000 facilite le glissement et réduit
les frictions gui, à la longue, peuvent rayer les
couches rapportées, avec pour conséquence un
effeuillage des couches très fines et une mise à
nu du métal de base favorisant la corrosion en
ambiance saline ou agressive.
Les tests auxquels a été soumis ce produit sont
particulièrement explicites et prouvent que l’uti¬
lisation de KONTAKT OR contribue largement à
allonger la vie de composants d'un coût élevé et
dont les garanties des fabricants sont géné¬
ralement limitées â 500 branchements.
BON POUR UNE NOTICE TECHNIQUE
GRATUITE A RETOURNER A
SLORA
BP91 -57602FORBACH
EN Y JOIGNANT VOTRE
CARTE DE VISITE.
CPC n° 36- Juillet/Août 1988
9
FAITES-VOUS
BONNE
IMPRESSION ?
Michel ARCHAMBAULT
Autant dire que nous
allons encore parler du
bon usage de
l’imprimante... Non
seulement apprendre à la
“switcher” correctement,
mais surtout prévoir pour
elle des applications
utilitaires. A titre
d’exemple, nous verrons
comment programmer
une lettre type avec
“mailing” et sans logiciel
de traitement de textes !
Les PREREGLAGES DE
L'IMPRIMANTE
eaucoup de lecteurs utilisent leur
imprimante avec les mêmes ré-
glages que lars de son débal¬
lage. D'autres, plus courageux se sont
plongés dans le manuel pour mieux
régler ces sacrés "switches'' (microcom¬
mutateurs) mais avec de nomoreux dou¬
tes sur leur action car les manuels d'im¬
primantes ne brillent pas par leur
clarté... La preuve, près de 40 % du
courrier des lecteurs qui m'est adressé est
relatif à des problèmes d'impression I
Première loi, la plus importante : les swit¬
ches servent à fixer des options par
défaut lors de la MISE SOUS TEN¬
SION. Donc un switch basculé sous ten¬
sion est sans effet. Il faut éteindre et
rallumer pour que ce changement
devienne actif. OK ?
Deuxième loi : un fabricant d'impriman¬
tes veut que ses machines puissent fonc¬
tionner parfaitement sur tous les micro¬
ordinateurs. Or, ceux-ci sont tellement
différents qu'il n'existe pas de réglage
passe-partout. Il a dû en choisir un pour
la sortie d'usine et huit fois sur dix, c'est
le réglage pour liaison à un compatible
IMB PC, pas pour CPC... (heureusement,
ils diffèrent peu I).
Troisième loi : il faut noter, sur une feuille
fixée dans le manuel, les positions des
switches AVANT ET APRES modifica¬
tions.
Il serait trop facile de vous indiquer sans
explications les options à prendre pour
liaison à un CPC. Il faut absolument con¬
naître les raisons de ces choix car un jour
vous tomberez fatalement sur un cas par¬
ticulier.
Le choix de NATIONALITE
DES CARACTERES
Six codes ASCII ont des représentations
différentes selon cette "nationalité". Il
s'agit de lettres spécifiques à certaines
langues. Pour la France, ce sont les
minuscules accentuées, le siqne
"numéro" (®) et le signe "paragraphe"
(§). Un exemple ; si T'imprimante reçoit
le code ASCII 64 et qu'elle est switchée
USA, elle fera un " " ; si elle est swit¬
chée France, elle fera un "à". Idem pour
le code 124 qui sera traduit par la barre
verticale ou par "ù".
Premier cas de conscience ; vous avez un
clavier QWERTY et vous vous consacrez
surtout à la programmation, alors swit-
chez USA pour que ces symboles usuels
soient traduits de même sur papier. Vous
avez un clavier AZERTY et vous trouvez
normal que ces caractères soient identi¬
ques à l'écran et sur papier, alors swit-
chez français. QWERTY ou AZERTY
vous voulez que les minuscules accen¬
tuées à, é, è, ù, ç soient imprimées cor¬
rectement. Dilemme...
Voici la solution que j'utilise : mon impri¬
mante est switchée USA (car je fais sur¬
tout de la programmation), mais quand
je veux imprimer ces lettres avec accents,
j'envoie tout d'abord le code EPSON
qui va instaurer le clavier français.
PRINT#8, CHR$(27);"R";CHR$(1);
Quatrième loi : lorsqu'une commande
par code EPSON est en contradiction
avec le "switchage", c'est le code
EPSON qui prime.
Inversement, si la machine est switchée
France et que vous vouliez imprimer un
listing, envoyez d'abord ce même code
EPSON mais en remplaçant CHR$(1)
par CHR$(0) et vous serez en caractè¬
res USA. A vous de choisir.
Nota : si vous utilisez aussi un compati¬
ble PC même avec clavier AZERTY, swit¬
chage USA obligatoire. (Les minuscules
françaises ont d'autres codes ASCII).
Choix des codes et polices
Vous savez que les consignes pour
imprimer du texte se font par des codes
de commandes appelés communément
"CODES EPSON" ; or, ils ne sont pas
les seuls, il existe aussi les "CODES
IBM" souvent très différents des codes
EPSON. Ces codes IBM (une marque qui
ne veut jamais faire comme tout le
monde I) sont très peu utilisés. Donc pas
d'hésitation, choisissez "codes EPSON"
c'est le standard qui s'est imposé.
Un autre switch peut vous proposer "ita¬
lique ou IBM" ou encore "normal au
graphique". Ceci ne concerne (hélas)
pas les AMSTRAD CPC puisque leurs
sorties imprimantes ne sortent que 7 bits
12
CPC n° 36- Juillet/Août 1988
au lieu de 8. Autrement dit, un CPC ne
peut envoyer à l'imprimante que des
codes ASCII compris entre 0 et 1 27. Or
ce choix concerne les caractères de codes
compris entre 128 et 255.
Dans la norme ASCII, ce sont nos mêmes
caractères mais écrits en italiques. Cela
a peu d'intérêt car un CPC peut faire
imprimer en italiques grâce au code
EPSON ESC "4" (traduit par
PRINT#8, CHR$(27);"4"). IBM pour
ses PC en a profité pour les remplacer
par autant de symboles graphiques très
utiles parmi lesquels on trouve nos minus¬
cules accentuées. Il y a même deux jeux
de caractères (peu différents) appelés
"Table I et table H". Je vous parle de
ces choses qui ne nous concernent pas
parce qu'il s'agit de choix proposés cians
le manuel. Donc pour CPC, switchez
"italiques" et ce pour éviter des ennuis
avec l'une des tables IBM...
Revenons aux codes EPSON : quelques
lecteurs se plaignent que certains codes
ne fonctionnent pas (ou d'une manière
inattendue) sur leur imprimante. Trois
raisons à cela.
• Votre imprimante bas de gamme a une /
ROM moins riche qui ignore ce code/
"élaboré" présent sur les modèles haut!
de gamme ou très récents ; |
• Votre imprimante est d'une marque oui
d'un modèle qui ne respecte guère la
norme EPSON. Et je vise là certains
modèles TANDY et l'AMSTRAD DMPl ;
• Cas plus rare : certains codes EPSON
sont mal normalisés et changent d'effet
d'un modèle à l'autre (même dans la
marque EPSON I). Le cas maudit est le\
ESC " I" qui sert justement à changer la
taille des caractères. A ne jamais utili¬
ser !
REGLAGE DIVERS
Zéro barré ou non. Le zéro non
barré a une forme légèrement plus car¬
rée que le O majuscule. Optez pour le
zéro barré et en traitement de texte,
tapez des O majuscules pour zéro.
Attention, il n'existe pas de code
EPSON pour cette option ; c'est unique¬
ment par switch.
LF (automatic line Feed) = saut de ligne
automatique. Mettre sur OFF. Explica¬
tion : quand vous programmez
PRINT#8, AS après ce A$, le CPC
envoie à votre insu un CHR$(13) qui fait
revenir la tète à gauche, plus un
CHRSIIO) qui fait avancer le papier
d'une ligne. Quelques très rares ordina¬
teurs n'envoient pas ce CH R$( 10) et c'est
à l'imprimante de le faire suite à un
CHR$(13). Si vous le mettiez sur ON,
vous auriez donc un double interligne.
Les sauts de pages. Plusieurs régla¬
ges correspondent à cela. Tout d'abord,
la longueur des feuilles utilisées, 1 1 ou
2 pouces (= 27,94 cm ou 30,48 cm).
Le 11" est plus fréquent. Les feuilles
séparées correspondent à 11 " et 1/2
donc une autre raison de choisir 1 1".
- SKIP OVER effectue un saut de 1 pouce
en bas de page, ce oui évitera d'écrire
sur la pliure en pointillés. En général, on
le met sur OFF.
- PAPER END DETECTOR : arrêt de
l'imprimante si panne de papier. ON car
c'est une sage précaution, mais à met¬
tre sur OFF pour imprimer une feuille
séparée ou des enveloppes.
- "Papier continu ou en feuille à feuille".
En "feuille à feuille" le SKIP OVER se
met sur ON et PAPER END sur OFF, et
ce automatiquement, du moins généra¬
lement... Cette position est recommandée
même si vous n'avez pas de bac d'ali¬
mentation automatique et que vous posi¬
tionnez vos feuilles une à une.
SLCT-IN Une option ayant tendance à
disparaître. A mettre sur ON. En OFF,
le micro pourra bloquer l'imprimante en
mettant la broche 36 de la prise à -i-5
volts. Utilité ?
INPUT BUFFER. Votre machine pos¬
sède peut-être une RAM (buffer) de plu¬
sieurs kilo-octets dans laquelle elle stocke
les caractères à imprimer ? Grâce à elle,
le CPC "reprendra la main" avant la fin
de l'impression. Donc à mettre sur ON.
Toutefois, pour la mise au point de pro¬
grammes d'éditions, ce buffer est
gênant : en OFF, l'imprimante s'arrêtera
quand vous presserez la touche ESC du
CPC.
En conclusion, vous voyez que de nom¬
breux switches dépenclent de vos goûts
personnels ou de circonstances excep¬
tionnelles. Il est donc indispensable de
connaître le rôle de chacun d'eux.
Nota : même avec le LF sur OFF, il
arrive que l'on ait le double interligne,
c'est spécifique aux Amstrad CPC équi¬
pés de certains câbles : il faut empêcher
que la borne de sortie n° 14 côté CPC
soit reliée électriquement à la borne 14
côté imprimante. Si c'est le cas, coupez
cette liaison dangereuse (dans une des
prises du câble).
A présent, nous pouvons faire les pro¬
grammes d'éditions.
Les REGLES GENERALES
DE PROGRAMMATION
1 - Tout programme (ou sous-
programme) d'édition doit commencer
par ESC " " qui vide le buffer de con¬
signe. Ce code a également pour effet
de mémoriser la ligne 1 du papier (pour
les sauts de pages). Il faut donc que le
apier soit correctement positionné en
aut de page AVANT de lancer le pro¬
gramme !
2 - Tout programme doit s'achever par
ce même ESC " ". Imaginez que la
dernière ligne ait été imprimée en gros
caractères et qu'après cela, vous fassiez
LIST # 8 ... Joli gag, n'est-ce pas ?
3 - Les codes EPSON peuvent être pro¬
grammés à la file, séparés par des
Il faut un point-virgule à la suite d'un
code isolé sinon il y aura en plus un saut
d'une ligne...
4 - Pour laisser des lignes blanches, pro¬
grammer des PRINT/t8. Exemple :
FOR N = 1 TO 4 : PRINT#8 ; NEXT
5- Pour effectuer un saut de page pré¬
maturé, faire : PRINT#8, CFiR$(12) ;
faire également un CHR$(12) ; en final.
Ce code ne fait pas avancer le papier
d'une page mais du complément de
lignes pour amener le papier sur le
haut d'une nouvelle page (très impor¬
tant I).
6 Pour les tabulations horizontales, uti¬
lisez TAB (comme avec PRINT) ou SPC
ou SPACE$.
PRINT #8,A$;TAB(20);B$;TAB(65);E$
PRINT#8,SPC(38);C$
PRINT#8,SPACE$(52);D$
Ne pas utiliser les codes EPSON spé¬
ciaux tels que ESC "D" qui sont très déli¬
cats d'emploi, donc assez farceurs. Idem
pour les tabulations verticales (comptez
les PRINT«8).
7 - Si vous utilisez du papier de largeur
normale sur une imprimante "grand cha¬
riot", il faut obligatoirement program¬
mer WIDTH 80 (c'est une commande
BASIC CPC), sinon la tête poursuivra
l'impression de sa ligne sur le rouleau
caoutchouc... Ce sera WIDTH 96 pour
des caractères "Elite" et WIDTH 132
pour du "condensé".
8 - L'écriture en "espacement propor¬
tionnel" par ESC "p" fait certes plus
"chic" mais est à proscrire des
tableaux ; sinon adieu les belles tabu¬
lations !
9 - Si votre CPC a un clavier QWERTY,
il vous faut connaître les touches corres¬
pondant aux minuscules accentuées :
à = ; é = SHIFT + crochet ouvert ;
è = SHIFT + crochet fermé ; ç = anti-
slash ; ù = barre verticale ; ° - crochet
ouvert et § = crochet fermé.
Les lettres é et è se traduisent à l'écran
por des petites accolades.
Pour obtenir ces symboles sur les écrans
des CPC QWERTY, lancez un sous-
programme à base de SYMBOL : voir
du même auteur : "Programmes utilitai¬
res pour AMSTRAD" page 20 (SORA-
COM).
CPC n°36- Juillet/Août 1988
13
Une application
PRATIQUE
Notre listing exemple est une lettre type
qu'une entreprise envoie à tous ses
clients pour un nouvel article OBJ$.
Seules deux données sont à entrer ou
clavier, la dote DAT$ et le nom de cet
OBJS. Pour le reste, le programme
charge le fichier adresses cies clients et
édite une lettre PERSONNALISEE pour
chacun d'entre eux. C'est ce qu'en trai¬
tement de textes on appelle "MAILING"
ou "PUBLIPOSTAGE".
Bien sûr, le nom et l'adresse sont impri¬
més au bon endroit pour les enveloppes
à fenêtres, mais plus loin le nom de la
personne et sa ville sont mêlés au texte,
ce qui fait "personnalisé".
Ce programme étant une démo, nous
avons remplacé la lecture du fichier
clients (par OPENIN) par deux lignes de
DATA figurant les "champs" de deux
clients.
Le texte de cette lettre type est pro¬
grammé par des lignes de DATA, que
vous devrez bien sûr changer pour votre
application personnelle.
Et maintenant, expliquons certains
détails de ce mini programme.
Les details de la
PROGRAMMATION
1050 - On demande de vérifier que le
papier est bien positionné et l'impri¬
mante prête, puis de presser ENTER.
Cette précaution, ce répit, sont obligatoi¬
res.
2010 à 2030 - On envoie les codes
EPSON nécessaires : initialisation
d'abord puis clavier français et qualité
courrier (NLQ) même si votre imprimante
est déjà switchée ainsi = confirmation
sans risques.
3000 à 4080 - Ce module appelé
par le GOSUB de la ligne 200 va met¬
tre en RAM toutes les variables dont
nous avons besoin. A savoir les lignes de
texte, DIM L$, des codes EPSON rebap¬
tisés "en clair" (lignes 3210 et 3220) ;
remarquez dans ces lignes le signe +
pour concaténer les divers éléments. Et
enfin, le fichier clients mis en DIM F$. NF
est le nombre de fiches-clients (lignes
4000 à 4070).
2040. Ce FOR N = 1 TO NF:GO-
SUB 5000 va faire imprimer NF lettres
personnalisées.
2050- Fin du programme, un init final
f )our vider le buffer de consignes de
'imprimante.
Donc le "gros morceau" c'est ce module
5000 que nous allons étudier plus en
détail.
Le module ^aEHRE"
(Ligne 5000 - 5910)
Nous n'avons pas imprimé l'expéditeur,
on suppose qu'il s'agit de papier à en¬
tête. Pourquoi commence-t-on par un
PRINT#8 î (5010). C'est une sage pré¬
caution car la première inscription est
forcément tabulée (la date); et l'on ris¬
querait d'avoir des surprises sur la posi¬
tion de celle-ci.
En effet, la lettre n® 1 a d'abord reçu des
codes EPSON suivis de point-virgule ;
les lettres suivantes prendront la suite
d'un CHR$(12) ;. Ce print#8 met les
pendules à l'heure et nous évite certai¬
nes farces, surtout sur la lettre n° 1.
En TAB(45) on écrit le nom et l'adresse
du destinataire pris dans le DIM F$
(lignes 5040 à 5060). Nota : les champs
ou rubriques de ce tableau sont légen-
dés ligne 4020.
Ligne 5090, on commence l'écrituredes
lignes de texte du DIM L$ mais en débu¬
tant chaque fois par un TAB(8), c'est la
marge de gauche.
Vous remarquerez que ces chaînes
(DATA des lignes 3010 à 3080) ne font
jamais plus crune ligne. On ne fait pas
confiance au saut de ligne par l'impri¬
mante qui pourrait nous couper un mot
là où il ne faudrait pas...
Ligne 5100. On imprime OBJ$ en cen¬
trage automatique et en double frappe
afin de le mettre bien en évidence dans
la lettre.
Ligne 5120. On s'offre le luxe d'ajouter
dans le texte une des valeurs du fichier,
ici la ville du client. C'est facile puisque
c'est une fin de phrase sur une ligne cour¬
te.
En revanche, la ligne 5130 est plus har¬
die. Dans la formule de politesse, on
INCLUT le nom du destinataire en plein
milieu de la ligne. Donc on prend un ris¬
que puisque la longueur de ce nom
criange chaque fois. Aussi la phrase à
droite de ce nom est relativement courte.
On aura donc un saut de ligne plus ou
moins prématuré, mais ce n'est pas tel¬
lement gênant. Beaucoup de traitement
de textes avec option "mailing" (et ils
sont rares) ne feraient pas mieux.
Le listing de ce module 5000 peut paraî¬
tre lourd parce que pas-à-pas. Certes,
mais ainsi il est très facile à retoucher.
Quelques petites astuces
■ Quand vous taperez vos DATA de
lignes LS, il foudro veiller à ne pas
dépasser 72 caractères. Alors passez en
MODE 2 puis topez :
WINDOWoO, 1, 72, 1, 25
et votre écran fera 72 caractères par
ligne.
- Avant de taper votre module 5000,
préparez-vous une "touche pour fainé-
nont", ici le 6 du pavé numérique :
KEY 134, "?#8, TAB(8);"
»»»»*««»****
Orléans le 5 avril 1988
Monsieur GOILLEMI»
SOGELEC
23 rue du NOBD
La Saulaie ,.r,Ton
03150 VABESNB e/ALLIEB
lonsieur GOILLEMItt.
, trAs intéressé par un natérlel
-veruTûuranr^rsorair^
une BIDOOILLEGSE EXCEMTB1G08
Plaisir sur votre denande de venir vous présente
rrouferarricîrt TaBEMBE s/ALLIEB.
, Monsieur GGILLEMI». de croire à l'.88uranoe
rUTenŒ; “irriîlcurs.
Jean-Paul DOBOIS
14
P. J. : 1 docunentatlon
CPC 36- Juillet/Août J 988
LISTING
Conclusion
Vous avez appris le langage de votre
CPC, familiarisez-vous avec celui de
votre imprimante.
Nous avons vu comment l'adapter à
votre micro (c'est quasi définitif) et com¬
ment lui transmettre quelques ordres sim¬
ples qui ont conduit à un produit assez
élaboré. Vous doutiez-vous qu'un listing
BASIC aussi court pouvait suffire pour
éditer des lettres commerciales person¬
nalisées ? Pour bien d'autres exemples
aussi faciles que spectaculaires, voir du
même auteur "La Pratique des Impri¬
mantes" (SORACOM). J'aurai au moins
réussi à glisser deux pubs dans le même
article...
10 ' LETTRE r/PE avec MAILJNG -- Michel Archamcauit 04/ >LA
88
20 DEF INT A-Z >NJ
100 DIM F$(100,6).L$(20) /OT
200 30SUB 3000 NG
ICiOO ' départ >XD
1010 MODE ULOCATE 7.3:PRINT"Circuiâire aux Clients pou >PP
r"
1020 LOCATE 7,5;PRINT''Presentation nouvel Article" >GN
1030 LOCATE 11.11:LINE INPUT"Date du jour ",DAT$ >WF
1040 LOCATE 1.13:LINE INFUT’'No(ii de l'article ".0BJ$ >BX
1050 LOCATE 4,20:INPUT"Preparez 1 ' Imprimante puis ENTER >LID
“.R$
2000 ' édition des lettres >XE
2010 PRINTi8,CHRI(27)init >VF
2020 PRINTI8,CHR»(27);"R";CHR$(1);: France >CZ
2030 PRINT#8,CW$(27);"x";CHR$(l);:'NL0 >DH
2040 FOR N=1 TO NF:G0SUB 5000;NEXT >BC
2050 PRIMTIB,CHR$(27);"ê" : ' init >UB
2060 CLS:END >JC
3000 ' MISE en MEMOIRE des VARIABLES >XF
3010 DATA "Nous sommes certains que vous serez tr}s int >KH
{ressi par un raattriel"
3020 DATA "nouveau fiqurant dîsormais B notre catalogue >LB
, @ savoir"
3030 DATA "Notre agent se fera un plaisir sur votre dem >UV
ande de venir vous prfsenter"
3040 DATA’ce nouvel article i “ XFCl
3050 DATA "Nous vous prions. Monsieur " >RU
3060 DATA ", de croire @ l'assurance" >MK
3070 DATA "de nos sentiments les meilleurs." >AR
3080 DATA "P.J. ; 1 documentation" >GR
3200 RESTORE 3010:F0R N=1 TO 8:READ L$(N):f€XT '>NJ
3210 D0UB$=CHR$(27)+"G"; frappe double >RC
3220 D0UBX$=CHR$(27)+"H": annule D0UB$ >TU
4000 ’ Fichier client F$(N,6) >XG
4010 ' Ce module remplace ici un chargement de fichier >XH
par OPENIN
4020 'l=Nom Société ; 2=ad'res5e A ; 3=adresse B ; 4=cod >XJ
e postal ; 5=ville ; 6=directeur
4030 DATA S0SELEC,"23 rue du N0RD"v,"La Saulaie”.03150," >XB
VARENNE s/ALLIER",GUILLEMlN
4040 DATA "Etablissements COVERT","34 Bd CHAVE",,13004, >JA
MARSEILLE,GAILLARD
4050 NF=2:RESTORE 4020 >0C
4060 FOR N=1 TO NF:F0R J=1 TO 6 >1®
4070 READ Fi(N,J):NEXT:NEXT >WV
4080 RETURN >ff
5000 ' EDITION d'une LETTRE >XH
5010 PRINT#8 >6K
5020 PRINT#8,TAB{50)i"Orl{an5 le "jDATi >LR
5030 FOR 1=1 TO 6;PRINT#8:fEXT >yH
5040 PRINTI8,TAB(45);"Monsieur ";F$(N,6) >LH
5050 FOR 1=1 TO 3:PRINT#8,TAB(45);F$(N,I):NEXT >PJ
5060 PRINT#B,TAB(45);F$(N,4);" ";F$(N,5) >GF
5070 FOR 1=1 TO 5;PRINTI8:NEXT >YL
5080 PRINTI8,TAB(8);"Monsieur ";Fi(N,6);",";PRINT#8;PRI >KC
NT#8
5090 FOR 1=1 TO 2;PRINTIB,TAB(8);L$(I):NEXT:PRINTi8 >XG
5100 PRINTI8,S>C((BO-LEN(OBJt))/2);DOUB$;OBJt;DOUBXi:PR >JU
INT#8
5110 PRINTI8,TAB(8);L$(3) >U6
5120 PRINTi8,TAB(8);Li(4);F$(N,5);".":PRINTi8;PRINTIB >ZA
5130 PRINT#8.TAB(8);Li(5);Fi(N,6);Lt(6) >FB
. 5140 PRINT#8,TAB(8);Li(7) >UP
5150 FOR 1=1 TO 4:PRINT#8;NEXT >YJ
5160 PRINTi8,TAB(45);"Jean-Paul DUBOIS" >LJ
5170 FOR 1=1 TO 10:PRINT#8:NEXT >ZK
5180 PRINT#8,TAB(B);Li(8) • >UV
5900 PRINT#8,CHRi(12);:' saut de page >RU
5910 RETURN >FJ
CPCn " 36 - Juillet/Août 1988
15
traitement
DE LMMAOE
Iraitement des images binaires i
GENERALITES
■ Nous l'avons déjà dit : l'image binaire est une
mjK image qui ne comporte que deux niveaux de gris.
Elle représente un cas particulier de l'image com¬
portant des niveaux de gris ou de couleurs. Tout ce qui
a été dit pour l'image en général reste valable pour
l'image binaire et notamment l'organisation des pixels en
cellules poligonales. Dans ce qui va suivre, nous continue¬
rons à considérer les cellules en forme de carré et le voisi¬
nage immédiat (3x3) d'un point comme étant constitué de
huit voisins, dont quatre directs et quatre indirects.
L'image binaire possède aussi ses caractéristiques propres.
C'est la seule image admettant l'algèbre booléenne, le
pixel allumé pouvant être assimilé au "vrai" et celui éteint
au "faux", représentés par "1" et "0". Dissipons tout de
suite un malentendu : les niveaux 0 et 1 ne sont pas forcé¬
ment noir et blanc. Ils peuvent correspondre soit aux
niveaux de gris, soit aux couleurs voulus. Pour que l'image
soit très lisiwe, il est pratique que les niveaux ou couleurs
choisis soient opposés ou d'un écart important. Cela don¬
nera un bon contraste.
Puisque la nature de l'image binaire admet les opérations
booléennes, il est tout naturel de considérer les opérateurs
comme de simples masques. Ainsi l'application d'un mas¬
que 3x3 sur le voisinage du point traité et une opération
booléenne choisie donneront un résultat qui décidera de
la valeur à attribuer au point traité. Comme d'habitude,
cette opération sera répétée pour chaque point de l'image.
Si le terme "booléen' ne vous dit rien, prenez le manuel
de l'utilisateur de votre CPC et cherchez dans la liste des
mots clés l'explication des opérateurs AND, OR, NOT et
XOR.
EXTRAaiON DES CONTOURS
L'extraction des contours est beaucoup plus simple dans
le cas des images binaires. Ceci provient du fait qu'une
région de "vrais" ne peut pas avoir pour voisin autre chose
qu'une région de "faux" ou un bord. Il suffit de faire la
somme des "vrais" des huit voisins plus le point traité. Si
cette somme est comprise entre 2 et 9 (exclu), le point traité
appartient au contour. Si la somme est égale à 9, le point
traité est dans la région de "vrais", mais pas sur le con¬
tour. Si la somme est égale à 0, 1 ou 2, il sagit des points
isolés. Ces points représentent le bruit et sont éliminés.
Le programme du listing n® 12 est basé sur ce principe.
En ce qui concerne les niveaux "vrais" et "faux", ceux-ci
sont représentés par 9 (chr$(57) et espace (chr$j32)).^
Sauvegardez ce programme sous le nom "CONTOUR".
Vous l'utiliserez pour extraire le contour de l'image bina-
risée au préalable par le programme "SEUILBIN" ou un
autre. La figure n® 21 montre le résultat de ce traitement.
Tous les bruits ne seront pas forcément éliminés. L'épais¬
seur du contour ne sera pas, non plus, obligatoirement d'un
seul pixel. Nous verrons dans ce qui suit comment élimi¬
ner ces parasites.
L'utilisation de l'extraction des contours dans un but artis¬
tique est évidente : les dessins en ombres chinoises peu¬
vent être remplacés par les dessins des contours.
16
CPC n°36- Juillet/Août 1988
ïsaa
9£* 99
9999999
993 399
999
9 9
9 O
,cj
999
9
999 999
999 î»99
3093933
9 9 9 9
99 9
Figure n° 21
393909
9 9 9 9
9 9 9 9 9
9 39 9999
''9 9 9
9 9 9
9 9
9 9
9 '♦ 999 9
399 9
9 9
9999
9
9
9 9
9 S
3
9
9
9 99
999
9
999
99 99
9999999
399 999
999
9 9
3 3
9 9
9 9
9 9
999
999
9
9
999
999 999
9999999
99 99
9 99
Contour de l'image binaire
Contour de l'image binaire
EROSION ET DILATATION
Voici deux traitements que chaque artiste appréciera
beaucoup. Si son dessin en ombres chinoises de la nymphe
lui paraît trop abondant en rondeurs, l'application de l'éro¬
sion sera une vraie cure d'amincissement. Si son héros tuant
le dragon lui paraît trop gringalet, l'application de la dila¬
tation en fera un géant. En même temps, les petites taches
d'encre dues à sa négligence disparaîtront lors de l'éro¬
sion. Et comme il n'arrivait pas à bien encrer les régions
sombres, la dilatation fera disparaître les petites taches
blanches. En conclusion, les applications successives
érosion-dilatation, puis dilatation-érosion, servent à net¬
toyer l'image de tous les bruits. Puis, une des deux, utili¬
sée une ou plusieurs fois, permet soit d'agrandir, soit de
diminuer les régions de "vrais". Le programme du listing
n° 13 effectue, selon le choix, l'érosion ou la dilatation.
Pour chaque point de l'image, nous considérons les huit
voisins plus le point lui-même. Dans le cas de l'érosion, c'est
le résultat du ET (AND) logique qui sera retenu pour la
nouvelle valeur du point. Dans le cas de la dilatation, c'est
le résultat du OU (OR) logique. Au lieu de faire les neuf
tests pour les neuf points, il est plus simple de tester la
somme des valeur des neuf points. Dans le cas de l'éro¬
sion, pour obtenir "VRAI" après neuf ET, la somme doit
être ^^1^ à neuf. Dans le cas de la dilatation, pour obte¬
nir "VRAI" après neuf OU il suffît que la somme soit supé¬
rieure à zéro. Le programme est fait selon ce principe.
Sauvegardez-le sous le nom "ERODIL". Binarisez l'image
comme pour l'extraction du contour, puis testez érosion-
dilototion-dilotation-érosion. La figure n° 22 montre le
résultat final de dilatation-érosion de l'image binaire.
SQUELEniSATION
La squelettisotion est une application destinée à ramener
au strict minimum, donc à l'essentiel, les renseignements
définissant la forme d'une région. L'avantage est évident,
car le nombre de données à conserver sera plus petit. La
transmission des données sera accélérée et le stockage
occupera moins de place. D'autre part, et c'est très impor¬
tant, la reconnaissance des formes sera rendue nettement
plus facile, le nombre de données à analyser étant réduit.
Cette dernière utilisation ne concerne pas les arts graphi-
ques, par contre l'imagesquelette, son stockage, puis la
reconstitution de l'image originale, sont très intéressants.
Ifl méthode de squelettisotion consiste en applications suc¬
cessives d'amincissement des régions, tant que cela est pos¬
sible en conservant les caractéristiques de forme des
régions. C'est donc une forme particulière de l'érosion. Les
masques et les tests utilisés ne sont pas les mêmes. De plus,
pour effectuer un amincissement identiaue dans chacune
des huit directions possibles, il faut appliquer successive¬
ment huit masques différents. Ces masques ressemblent aux
huit opérateurs directionnels des filtres spatiaux mais c'est
la logique booléenne qui est utilisée à la place de moyen-
nage. De plus, les tests logiques ne sont pas identiques
pour tous les points. Deux points opposés sont exclus dons
chaque masque, les sept restants étant divisés en deux
groupes. Cela donne sept tests plus le test entre deux grou¬
pes. Pour chaque point de l'image, il faut donc effectuer
8 tests pour 8 masques et ceci jusqu'à ce que l'image
devienne stable. C'est énorme et la démonstration de sque-
lettisation par un programme écrit en BASIC ne serait vrai¬
ment pas raisonnable. Dans l'attente de la deuxième série
d'articles, consacrée aux routines utilitaires de traitement
de l'image, écrites en langage machine, contentez-vous de
huit masques, que voici :
1 0-1
0 -1 -1
H0=
1 -1 -1
; Hl =
1 -1 -1
1 0-1
1 1 0
H2=
H4=
H6=
-1 -1 -1
0-1 0
1 1 1
■1 0
■1 -1
■1 0
1
1
1 1 1
0-1 0
-1 -1 -1
H3=
H5=
H7=
-1 -1
-1 -1
0 1
0 1
-1 -1
-1 -1
1 1
1 -1
0 -1
939
.9 9 9
9 iï 9
3 9 9
999
999
993
999
9 99
39339
99999
99 99 9
939
99 9
•’9 9
Figure n° 22
99399939
99999999
999999999
39399
9 9 9 9 9
T» 9 9 9 9
999
999
3 93 3
99 9
999
339
999
9999
3 9 9 3
9 9,9
9 99
333
999
9999
939933939
99999999
9 9 9 9 9 9 *'*
39 33
999
9 9 9
9
333
999
999
9 99
9 99
999
939
999
99 9
3
93939
99999
■ «in
9 9 9 3 9
99999
3 3 3
9 9.9
999
993
9 99
T?'i
■ 9
Enigme binarisée par seuillage binaire
avec seuil = 4 après érosion-dilatation.
, 3 3iJ3 9
9 99999
9 999 9
939
999
999
999
99 9
999
9 33
999
999
939
999
99 9
993
999
999
9 999 9
9 99999
9 999 3
Figure n° 23
333993399
999999999
999999993
999 939
999 999
999 999
999 993
999 999
9 9 9 9 39
399399399
999999999
999999999
999
999
999
_3 939 3
3 99399 9
9 999 9
999
999
999
33 9
3,9 9
339
999
999
999
999
999
333
399
999
999
^^9 999 9
3 39999 9
3 339 3
Image précédente après la segmentation en régions homogènes.
CPC n° 36- Juillet/Août 1988
17
Les "0" sont les point exclus,Jes "1" correspondent aux
.. - ■ - • •
tests OU, le "-V aux tests NON et ET. Les
sont liés par le test OU.
deux groupes
Nous avons déjà vu qu'il est possible de segmenter une
image de plusieurs manières. Ceci est aussi valable pour
l'image binaire. L'extraction des contours étant déjà étu¬
diée, nous examinerons la segmentation des régions.
Dans l'image binaire, les régions de "vrais" sont par défi¬
nition isolées des régions des "faux". Alors, de quelle seg¬
mentation s'agit-il ?
Nous avons défini l'image comme un ensemble de points
organisés en cellules carrées. Les sous-ensembles de
l'image sont donc les groupes de cellules comportant un
certain nombre de points. Pour avoir des formes homothé¬
tiques, ces groupes seront aussi de forme carrée. La lon¬
gueur de côté ae chaque sous-ensemble dépend de la
Forme des objets représentés. Si l'image globale est de
forme carrée et de longueur de côté paire, la première divi¬
sion en sous-ensemble sera une division en carrés de
dimensions identiques. Si ce n'est pas le cas, (comme pour
notre image), il faut trouver le plus grand aiviseur com¬
mun des deux côtés de l'image qui sera le côté du carré
du premier sous-ensemble. Cela n'est pas toujours possi¬
ble. Notre image est de 21x40 points. Le plus grand divi¬
seur commun est 1 I Alors, que faire ? Voyons, tout
d'abord, ce que nous souhaitons obtenir.
L'intérêt de la segmentation en régions homogènes réside
encore une fois dans la diminution du nombre de données
définissant l'image. Il faudrait donc diviser l'image en plus
etit nombre de carrés de plus grandes dimensions possi-
le, chaque carré étant entièrement soit "VRAI" soit
"FAUX". Il serait idéal que la première division corres-
sonde au plus grand carré homogène et que son côté soit
e diviseur commun. Imaginons une image représentant un
échiquier noir et blanc 8 x 8. Le diviseur commun sera L/8
et chaque sous-ensemble sera parfaitement homogène. Il
y aura 32 carrés noirs et 32 blancs. Pour définir parfaite¬
ment cette image, il suffit de conserver le diviseur ou le
nombre de sous-ensembles et leurs caractéristiques dans
l'ordre habituel i, j.
Imaginons maintenant que l'un des carrés blancs et l'un
des carrés noirs ne soient pas homogènes mais constituent
eux-mêmes les damiers. Nous effectuerons la seconde divi¬
sion en sous-ensembles de deuxième génération mais uni¬
quement pour ces deux carrés. Et ainsi de suite, pour n'ob¬
tenir que des carrés homogènes.
Qui dit génération dit arborescence. Si vous avez déjà étu¬
dié l'organisation des fichiers, vous reconnaîtrez la simili¬
tude avec un index hiérarchisé. On accède au renseigne¬
ment concernant les carrés en partant de la racine (^qui est
l'image), par les branches principales constituant la pre¬
mière division, jusqu'aux feuilles terminales constituées par
les carrés homogènes indivisibles.
Revenons à notre problème de la première division. Si le
diviseur commun n'existe pas ou s'il est trop petit et donc
sans intérêt, nous choisirons le plus grand carré homogène.
Commençant les divisions par l'angle supérieur gauche,
nous déborderons tout simplement sur la droite et vers le
bas de l'image. Evitez néanmoins une grande déforma¬
tion des derniers carrés.
Une fois encore, nous allons détourner une méthode de
traitement de l'image au profit de l'art. Au lieu de diviser
l'image en régions nomogènes de tailles variables, nous
diviserons l'image en régions non homogènes mais de
mêmes dimensions. Ensuite, nous compterons pour chaque
carré le nombre de points "VRAI" quelle soit leur posi¬
tion au sein du sous-ensemble. Ce chiffre sera arrondi au
multiple le plus proche correspondant à l'un des diviseurs
entiers de lù matrice seuil ayant les mêmes dimensions gue
les sous-ensembles. Ce nombre sera le seuil de remplis¬
sage. On appliquera à chaque carré la matrice de seuil,
avec le seuillage en fonction de ce nombre.
I
%
Ce sera la première division mais cette fois, on commence
par les tout petits carrés. Pour une image en mode 2, des
carrés 8x8 seront parfaits. La deuxième division aura les
carrés deux fois plus grands avec un nouveau seuillage
et ainsi de suite, l'Image devenant de moins en moins recon¬
naissable. On peut s'arrêter à n'importe quel moment, mais
on peut aussi continuer et obtenir un seul carré pour la tota¬
lité de l'image. Si vous êtes téléphie, cette méthode doir.^,
être pour vous du déjà-vu. Pour obtenir les mêmes effets/^''
mais dans l'autre sens, il faut sauvegarder les images de ;
toutes les divisions, puis les projeter dans l'ordre opposé.
La démonstration à l'aide de notre petite image ne sera
pas très persuasive. Faisons-la quand même avec notre voi¬
sinage habituel 3x3 comme carré de la première et uni-,
que division. Saisissez le programme du listing n° 14 et*
sauvegardez-le sous le nom "CARRES". Testez-le sur
l'image binarisée. La figure n° 23 représente l'image de
la figure n° 22 après segmentation en régions homogè-
3x3 par ce programme. La figure n® 24 montre un
nés
exemple de traitement artistique par la même méthode.'.
Figure n° 24
' 9
9 9
9
9 99999 3
9 999 9 9
9 99999 9
9 9999999999
9 9999999999
9 9999999999
9 999 999
9 99999 9 9 9
9 999 9 9 9
9 9999999999
9 9999999999
9 9999999999
9 99999 9
9 999 9 9
9 99999 9
9
9 9
9
9 9 9
9 99 99 9
9 9 9
9 999999999 9
99999999999
9 999999999 9
99999999999
9 999999999 9
99999999999
9 9999399999
9999999999 9
9 9999999999
99999993999
9 999999999 9
93999999999
9 9999 3 9
9999 999
9 9999 9 9
9
9 9
9
9 99
9 9 9
3 99
99999
9999
99999
9999
9999
9999
99999
9999
9 9 9 9 9
9 99
9 9
9 99
9
9
9
999 9
99 9
999 9
99999 9
999999 9
99999 9
9 9 9
9 9
9 9 9
99999
999999 9
99999 3
393 3
99 9
9 9 9 9
3
9
9
9
Un exemple de traitement artistique.
Ainsi s'achève votre initiation. Les notions que vous
possédez maintenant sont loin des connaissances
complètes sur le traitement de l'image Certains
aspects n'ont été qu'effleurés. Certains domaines,
comme la reconnaissance des formes et le codage,
ont à peine été cités. Vous avez néanmoins des
connaissances suffisantes pour pouvoir donner à
vos dessins ou vos images scannérisées un aspect
plus libre, plus artistique, par un traitement
approprié.
Et pour terminer, voici l'image que vous devez
obtenir après un traitement correct de l'image-
énigme.
18
CPC n^Sô- Juillet/Août 1988
>RL
>F«
>UH
>CD
>6Y
>EC
>ED«
Msting 13
13000 'EROSION ET DILATATION "ERODIL"
13010 '
13020 nODE hHINDOU 1,40,23,2S:MIND(]U«1,1,40,1,22
13030 LOAD'IMAGE.SCR'
13040 DIM K(22,40),a(10)
12360 FOR i=l TO 21:a$="
12370 FOR j=l TO 40:a$=a«+CHR<(ec(i,j))
12380 NEXT j!PRINTtl,a$;
12390 NEXT i
12400 CLS;SAVE'IMA6E.SCR',b,«:000,lt4000
12410 END
12510 END
\lstmg 12
12000 'EXTRACTION DU CONTOUR 'CONTOUR" >CJ
12010 ' >a<
12020 NODE hUINDON 1,40,23,25:WINDON*!, 1,40,1,22 >RK
12030 LOAD'IMAGE.SCR' >QQ
12040 DIM ec(22,40),a(10) >RZ
12050 ' >DD
12060 ' >DE
12070 k*0 >BD
12080 FOR i=l TO 21:L0CATE 1,1:PRINT i, >FP
12090 FOR j»l TO 40:ec(i,j)=32:L0CATE 10,1:PRINT j >TC
12100 L0CATE#l,j,i:s8=ASC(C0PYCHR$(ll)):IF s8=32 THE >T6
N 12340 ELSE s8=0
12110 IF i*I THEN 12170 >PF
12120 IF j»l THEN 12140 >PE
12130 L0CATEIl,j-l,i-l:s8*58-(ASC(C0PYCHR$(il))»57) >XF
12140 LOCATEIl,j,i-l ts8=s8-(ASC(C0PYCHR$(*l))=57) >W)
12150 IF j=40 THEN 12170 >{«
12160 L0CATEtl,j+l,i-l:s8=s8-(ASC(C0PYCHR4(tl))=57) >X6
12170 IF j=l THEN 12190 >QG
12180 L0CATEil,j-l,i:s8=s8-(ASC(CflPYCHR$(il))=57) >VK
12190 L0CATEIl,j,i:58=s8-(ASC(C0PYCHR$(il))=57) >TP
12200 IF j=40 THEN 12220 >QB
12210 L0CATE#l,j+l,i:s8»s8-(ASC(C0PYCHR$(il))=57) >VB
12220 IF i=21 THEN 12280 >flH
12230 IF j*l T)€N 122S0 >QA
12240 L0CATEIl,H,i+l:se»s8-(ASC(CaPYCHR«(il))«57) >XF
12250 L0CATEil,j,i+l:s8»s8-(ASC(C0PYC»W(fl))»57) >VF
12260 IF THEN 12280 >gP
12270 L0CATEil,j+l,i+l:s8=s8-(ASC(CCIPYClW(#l))=57) >X6
12280 k=s8 >NK
12290 s8=0 >LD
12300 IF (k>2 «D k<9) THEN ec(i,j)=57 >DV
12310 ' >DC
12320 ' >DD
12330 ' >DE
12340 NEXT j >CE
12350 NEXT i:CLSil >HH
13050 INPUT'erosion E ou dilatation D ',ai:amJPPER$(a$ >RR
):CLS
13060 s8=0 >JH
13070 k=0 >BE
13080 FOR i=l TO 21:L0CATE 1,1;PRINT i, >FQ
13090 FOR j=l TO 40;ec(i,j)=32 >XM
13100 LOCATE 10,1:PRINT j >UQ
13110 IF i=l THEN k=k+3i6OT0 13170 >AD
13120 IF j=l THEN k=k+l:G0T0 13140 >AA
13130 L0CATE#l,i-l,i-l;s8=s8-(ASC(C0PYCHRI(il))=57) >Xe
13140 LOCATEil,j,i-l :s8»58-(ASC(C0PYCHR$(il))*57) >IC
13150 IF jMO ÏÏCN k*k+l:GOTO 13170 >BR
13160 L0CATEil,j+l,i-l;58=58-(ASC(C0PYCHR4(ll))=57) >XH
13170 IF j=l THEN k=k+l:G0T0 13190 >BC
13180 L0CATEIl,j-l,i:s8*s8-(ASC(C0PYCHR$(ll))»57) >VL
13190 L0CATEIl,j,i:s8»s8-(ASC(C0PyCNR$(tl))>S7) >TQ
13200 IF jMO THEN k=k+l:GOTO 13220 >BH
13210 L0CATEtl,j+l,i:s8=s8-(A6C(C0PYCHR«(ll))==57) >VC
13220 IF i=21 THEN k«kt3sG0T0 13280 >BR
13230 IF j*l THEN 13250 >QC
13240 LOCATE#!,j-l,i+li58=s8-(ASC(COPYCHRI(11))=57) >XG
13250 L0CATEil,j,i+l:s8=s8-(ASC(C0PYCHR$(#l))=57) >VG
13260 IF j=40 THEN k=k+l!GOTO 13280 >BM
13270 LOCATE#!,j+l,i+l:58=58-(ASC(C0PYCHR$(ll))=57) >XH
13280 k=9-k >VC
13290 IF a$='D' AND 58>0 ÏÏCN ec(i,j)=57 :GOTO 13320 >TM
13300 IF a$="E" AND s8=k THEN ec(i,j)=57 :GOTO 13320 >TH
13310 ec(i,j)=32 >FJ
13320 k=0 >BJ
13330 s8=0 >KF
13340 NEXT j >CF
13350 NEXT i;CLS#l >MJ
13360 FOR i=l TO 21:af=“" >RM
13370 FOR j=l TO 40:a$=a»+CHR$(Bc(i,j)) >FN
13380 NEXT j:PRINT#l,a»; >UJ
13390 NEXT i >££
13400 CLS:SAVE"IMA6E.SCR",b,M:0OO,M0OO >GZ
13510 END >E£»
CPC n" 36- Juillet/Août 1988
19
\isting 14
14000 'SEGieiTATION DETOURhCE "CARRES" >DA
14010 ' >DB
14020 MODE 1:WIND0W 1,40,23,25:WINDC»I#1,1,40,1,22 >RI1
14030 LOAD"IMAGE.SCR" >QT
14040 DIM ec(22,40),a(10) >RB
14050 FOR i=l TO 21: FOR: j=l TO 40 >YQ
14060 ec(i,j)=32 >FB
14070 NEXT j,i:k=0!s8=0 >RT
14080 FOR i=2 TO 21 STEP 3:L0CATE 1,1:PRINT i, >MH
14090 m j=2 TO 40 STEP 3 >RX
14100 LOCATE 10,1:PRINT j >UR
14110 ' IF i=l THEN k=k+3:G0T0 5170 >DC
14120 ' IF j=l THEN k=k+l:60T0 5140 >DD
14130 LOCATE#!,j-l,i-l: 58 =s 8 -(ASC (CaPYCHR$ (11))=57) >XH
14140 LOCATE#!,j,i-l : 58 = 58 -(ASC(COPYCHR#(#1))=57) >MF
14150 IF j=40 T)£N k=k+l:GOTO 14170 >BÜ
14160 LXATE#l,j+l,i-l:58=58-(ASC(C0PYCHRf(#l))=57) >XJ
14170 ■ IF j=l THEN k=k+l:60T0 5190 >DJ
14180 LOCATE#!,j-l,i:58=58-(ASC(C0PYCHR$(#l))=57) >VM
14190 LOCATE#!,j, 1 : 58 = 58 -(ASC(C0PYCHR$(#1))=57) >TR o
14200 IF j=40 TICN k=k+l:GOTO 14220 >BK
14210 LOCATE*!,j+l,i:58=58-(ASC(C0PYCHR$(#l))=57) >VD
14220 IF i=21 THEN k=k+3:60T0 14280 >aj
14230 IF j=l THEN 14250 >QE
14240 LOCATE#!,j-l,i+l:s 8 = 58 -(ASC(C 0 PYCHR«(#l))= 57 ) >XH
14250 LOCATE#!,j.i+l: 58 =s 8 -(ASC(C 0 PYCHR$(#l))= 57 ) >VH
14260 IF .j=40 THEN k=k+l:GOTO 5280 >CJ
14270 LOCATE#!,j+1,i+ 1:58=58-(ASC(C0PVCH<*(#1))=57) XJ
14280 k=9-k:IF 58<k/4 THEN 14320 >ZZ
14290 IF 5 B<k /2 THEN ec(i-l,i)=57:ec(i,j-l)=57;ec(i, >XA
j+l)=57:ec(i+l,j)=57
14295 IF 58<k/2 THEN 14320 >TK
14300 IF 58 < 3 *k /4 THEN ec(i-l,j-l)=57:ec(i-l,j+l)=57 >LF
::ec(i, j)=57
14305 IF 58 < 3 *k /4 THEN ec(i+l,j-l)=57:ec(i+l,j+l)=57 >JG
:GOTO 14320
14310 FOR iii=-l TO l:ec(i+i»,j-l)=57:ec(i+a,j)=57:ec( >UU
i+ra,j+l)=57:NEXT n
14320 k=0 >CC
14330 sB=0 >LA
14340 NEXT j >CG
14350 NEXT i:CLS#l >Mk:.
14360 FOR i=l TO 21 STEP l:a$="'' >XU
14370 FOR j=l TO 40 STEP l:a$=a$+CHR$(ec(i,j)) >MY
14380 NEXT j:PRINT#l,a$; >UK
14390 NEXT i >CF
14400 CLS: SAVE“IMAGE.SCR“,b,8(COO0,S(4OOO >HY
14510 END >EF*
Souvent réclamées, voici les compilations de CPC. Vous
y trouverez les listings des anciens numéros ainsi que cer-
coMnunoN ks
1-2-3-4
AMSmS
COMMLAnON
des remes numéro
5 - 67 - 8 ^
La Haie de Pan
35170 BRUI
tains articles de fond.
A posséder absolument
□ Compilation 1
80 F
npila
(n° f à 4)
□ Compilation 2
(n» 5 à 8) 80 F
Frais de port 10%
Nom :
Prénom
• Code Postal
• Ville :
T Date :
-Signature
• Merci d'écrire en majuscules.
“ Ci-joint un chèque libellé à l'ordre
des Editions SORACOM.
Jean-Luc LARTIGUE
c
programme permet d’écrire une chaîne de caractères sur 20 cm de hauteur.
Son utilisation est très simple.
A la demande de l’ordinateur, entrez la chaîne que vous désirez imprimer (celle-ci peut comprendre des
majuscules, des minuscules, des caractères accentués). Sélectionnez ensuite la hauteur et la largeur
d’impression. Ensuite, prévoyez suffisamment de papier !
N.B. Ce programme fonctionne sur DMP 2000 et sur CITIZEN 120 D (il ne devrait donc pas y avoir de
problème avec les imprimantes compatibles EPSON).
ÎO ■-
20 B A N D E I !1 P
3(, --
40 Ecrit en 1986
50 par Jean Luc Lartigue
60 sur aiTistrad cpc
70 '-
80 sa-'e''bandei,'i!P"
100 :
110 — initialisation --
120 :
130 CLEARrMODE 2:CALL îcBBOO
140 SYMBOL AFTER 64 —- clavier qwerty et accentu
{ -
150 SYMBOL 125,?(60,{(10,!<3C,&66,ê,7E,8(60,?(3C,!(0:l>;EY 135,C
HR$(123)
160 SYMBOL 123,Î(6,Î.8,&3C,!(66,S,7E,!(60,3(3C,S(0 :KEY 128,C
HR$(125)
170 SYMBOL 64,&60.8<10,!!78,!(C,S,7C,!iCC,.Î!76,Îi0 :KEY 129.C
HR$(64)
IBO SYMBOL 92,t(0.?i0;WC,J(66,.l!60,î(3E,!(e,?(18 sKEY 132,C
HR$(92)
190 SYMBOL 124,îi30,!(6,!’:66,2(66,Si66,S(66,!<3E,î<0 ;ŒY 137,C
HR$(124)
200 SYMBOL 94,2<18,2(24,S(0,Î(0,!(0,!(0,«(0,3(0 :KEY 134,C
HR$(94)
210 SYMBOL 93,S!lE,&30,J(33,S(6i3,î(38,?(30,2!F0,îi0 ;KEY 131,C
HR$(93)
220 -
230 W1ND0W#4,1,80,25,25:PAPER#4,1:PEN#4,0 'titre
240 WIND0W#2,1,3,1,1 at-fichage texte
250 WINDOW#!,1,80,8,23 'recopie imprimante pour test
260 MINDON 1,80,2,7 saisies generales
270 ORIGIN 0,399 : WIDTH 80
280 PAF'ER OiPEN 1:BORDER 1:1NK 0,13: INK 1,0
290 CLS#0;CLS#1:CLS#2:CLSI4
>LA'
>L3
/LC
>LD
>LE
rLF
;15
■^LH
;LJ
/YE
>RC
/YG
>VH
;NH
>FD
>DF
>DJ
>BJ
>EC
>YX
>DC
>RE
>JK
>NV
>qN
>MX
>UQ
>JU
>WA
330 :
340 CL3
350 CLEAR
360 LINE lNPUT''Introduise: le met <255 caractères ma:<)
?
370 IF LENImïXl OR LEM(ffl*)/255 THEN 360
380 INPUT"Voule:-vou5 le sortir sur 1 imprimante (0/ )
■;rt:rt=UPPERS(Rt)
390 IF r$="0" THEN ira=8 ELSE im=l
400 at=m$
410 INPUT‘'Hauteur des lettres 1-8 {Enter = Bi : ":r$
:r»=UF'PER*(rï)
420 haut=INT(yAL(r$)):IF haut=0 THEN haut=8:GOTO 450
430 IF hautü OR haut>S THEN 410
440 ;
450 INPUT"Largeur des lettres 1-5 (Enter =2* : ":r$
:r$=UPPER»(r$)
460 larg=INT(yAL(r$)):IF larg=0 THEN lârg=2:G0Tû 490
470 IF largLl OR larg>5 THEN 450
480 :
490 CL5 :PRINT
500 FRINT haut!‘'}me hauteur lârg;''}ffle larqeur '
510 PRINT
520 PRlNT"X'';a$:"X"
530 :
540 :
550 ii=0
560 FOR 1=1 TO LEN(a$)
570 car=ASC(MID$(a$,i,l)) : CLS#2;PRINTI2,CHRt(car);
580 FOR- k=0 TO 7
590 FOR j=-15 TO 0 5TEP 2
pCiO :i=ii+l
610 t=TEST(k,j) :PL0Tk,j
620 IF t=l THEN tf=t$+STRING$(haut,CAR) ELSE t*=t$
+STRING*(haut,32)
630 NEXT
640 FOR A=1 TO iarg:PRINT#im,t$:NEXT ' Largeur de
la lettre
■YK
>UB
.;'KL
)BL
/EK
>RC
■■2T
■ AE
>CT
>XL
>YL
>ZB
>CZ
>11
>YQ
>ZF
/'BB
>NJ
■.^N«
)ZB
rZC
>YB
..’PF
m
>ZE
>Rï
>AC
>VA
>VP
>GE
>GN
300 PRINT#4," BANDEIMP : Fabrication de banderoll
e... Jean Luc Lartigue 1986"
310 :
320 Boucle principale —
>NA
>YH
>RFi
650 T$="":
660 NEXT
670 NEXT
680 GOTO 320
ii=0
>RJ
>FK
>EJ
>ZFé
CPC n'> 36- Juillet/Août 1988
21
BA/^C PBSSA/
Um/TA/R£
HERCULE II
H ercule II est un ensem¬
ble de 7 programmes
tous dévoués à la
sainte cause de la disquette 3”
et de son lecteur amstradien.
Les possesseurs de CPC ont
encore de belles découvertes à
faire s’ils ne sont pas très au
courant des secrets de la dis¬
quette. En effet, derrière cet
innocent objet de plastique noir
se cache un monde fascinant
rempli de GAP, d’ID, de sec¬
teurs et autres dénominations
cabalistiques.
Au lancement du programme,
le menu dévoile 8 petites dis¬
quettes ornées de leurs noms
respectifs. Procédons avec
ordre et méthode.
COPYLOCK 5.5
Il s’agit là d’un utilitaire de
copie de disquettes protégées.
Parmi les diverses options, on
trouve l’accès à un second lec¬
teur, la copie en 80 pistes (réser¬
vée aux lecteurs 5” 1/4) ou
l’analyse d’une disquette. Au
cours de la copie, Copylock
vous informe du numéro de
piste, du nombre de secteurs et
de leur taille, du nombre d’oc¬
tets par secteur, du nombre
d’octets sur la piste, du GAP de
formatage de la densité. Enfin,
le programme vous indique si la
piste est formatée ou non.
Certains de ces éléments sont
repris dans une autre partie de
l’écran consacrée aux secteurs.
On y trouve en plus des indica¬
tions sur la tête de lecture utili¬
sée (simple dans le cas du 3”,
quelquefois double pour les 5”
1/4) et sur la taille des secteurs
de 0 à 6 (dans ce dernier cas,
seule la lecture est possible).
A l’extrémité du tableau sont
également indiqués les messages
signalant les pistes “effacées”
ou provoquant une erreur de
lecture. Copylock ne pose pas
de problème particulier concer¬
nant son fonctionnement puis¬
que tout est automatique, même
la prise en compte du supplé¬
ment de mémoire du 6128. (En
revanche, Copylock n’a pas
reconnu l’extension 512 K de
Vortex sur 464). Un seul regret
cependant : les touches néces¬
saires au passage en 80 pistes
ainsi qu’à l’accès au second lec¬
teur ne sont pas indiquées sur
l’écran.
ULYSSE 1.0
Il s’agit là d’un copieur rapide,
c’est-à-dire qu’il ne traite que les
disquettes au format standard.
Les options sont en nombre res¬
treint : définition des lecteurs
source et destination, catalogue
et copie. Ulysse ne possède
pourtant pas de “compresseur”
de données, ce qui oblige à
effectuer des changements de
disquette pour les possesseurs
d’un lecteur unique.
PHOENIX
Cet utilitaire est plutôt unique
en son genre : il permet le stoc¬
kage de 225 Ko de programme
par face !
Certains d’entre vous me diront
que cela a déjà été fait (ou pres¬
que) avec Turbo 416 (208 Ko
par face). Mais les manipula¬
tions nécessaires pour utiliser
cette mémoire supplémentaire
étaient plutôt fastidieuses.
Phoenix lui ne procède pas de
la même façon, il implante un
nouveau système d’exploitation
sur la disquette. Pour cela, il
faudra commencer par forma¬
ter une disquette en 225 Ko par
l’intermédiaire de Phoenix. Le
seul résultat visible sera la pré¬
sence d’un fichier intitulé “225
K” au catalogue. De plus, le
nombre de Ko vous surpren¬
dra : 176 Ko. Mciis où sont donc
les 225 Ko promis ? Pas de
panique. Ihfaut lancer le petit
programme “225 K” pour ini¬
tialiser les nouvelles possibilités,
c’est-à-dire que vous pourrez
utiliser CAT, RENUM et ERA
tout à fait normalement, ainsi
d’ailleurs que CHAIN, LOAD,
MERGE, CHAIN MERGE,
OPENOUT et CLOSEOUT.
Par contre, un SAVE en mode
225 K n’est pas possible sans
Phoenix. Il faut donc recharger
Hercule à chaque enregistre¬
ment de programme. Il est dom¬
mage qu’une option copies mul¬
tiples n’ait pas été prévue, d’au¬
tant que pour remplir un disque
jusqu’à 255 Ko, cette option
aurait été bien utile. Il peut y
avoir certains problèmes mais la
plupart d’entre eux sont expli¬
qués et commentés dans la
notice. Enfin les fichiers ASCII
ne sont pas gérés par le nouveau
système d’exploitation mais il
vous sera possible de les stocker
sur 225 Ko.
Vous trouverez dans Phoenix
d’autres options pratiques telles
que l’effacement ou le change¬
ment d’un nom de fichier.
FLOPPY
C’est un des “gros morceaux”
d’Hercule. Il est sous-titré
Explorateur universel de dis¬
ques. il possède en effet une
série d’options assez puissantes
permettant de triturer le con¬
tenu d’une disquette.
La première option “Identifica¬
teurs” nous propose un tableau
regroupant les caractéristiques
des secteurs d’une piste. Le
nombre de secteurs affichables
est de 20 mais ce chiffre peut
être plus important. Vous entrez
alors un numéro de piste de 0 à
80 et le programme affiche alors
l’ensemble des secteurs ainsi que
leurs caractéristiques. En prime,
vous avez droit aux réactions du
contrôleur : 3 octets vous indi¬
quent (en chiffres) les erreurs
survenues lors de la lecture. Un
appui sur M vous ramène au
menu.
Le formatage comprend non
seulement les options standards
DATA et VENDOR mais éga¬
lement un format à la carte.
Pour cela, il faut indiquer la
taille des secteurs (de 0 à 5), le
nombre de secteurs (0 à 32), le
GAP (0 à 255) et le modèle de
données (0 à 255). Ensuite s’af¬
fiche la liste des secteurs avec
pour chacun leurs identifica¬
teurs, il faut entrer le numéro de
piste, la position de la tête de
lecture, le numéro du secteur et
sa taille. Deux petits détails aga¬
çants ; les Redo from start qui
apparaissent lorsque vous n’en¬
trez pas les données sous la
forme correcte et l’impossibilité
de répéter une même séquence
pour un paramètre.
Exemple : si l’on choisit 32 sec¬
teurs sur la piste 1, il faudra
entrer 32 fois le paramètre 1
concernant la piste (idem pour
la tête).
Heureusement, il est possible de
“copier” ce formatage mais
forcément sur des pistes conti¬
guës grâce à la suite du pro¬
gramme. Lorsque votre forma¬
tage est terminé, il vous est pos¬
sible de vérifier le résultat avec
la lecture des identificateurs.
“Lire une piste” est une option
elle aussi fort intéressante
puisqu’elle permet de lire entiè¬
rement une piste, c’est-à-dire
avec les ID, les GAP... et pas
seulement les données. Vous
avez alors là une vue sur les
entrailles de la disquette. Si vous
désirez sauver une partie de ces
données sous forme de fichier
binaire, cela est possible.
L’éditeur de secteurs est lui plus
classique dans son affichage
mais il possède quelques facili¬
tés d’écriture de secteurs sur
n’importe quelle piste de la dis¬
quette ou une sauvegarde d’un
secteur en un fichier. C’est éga¬
lement à ce niveau que vous
déciderez si les données écrites
seront “normales” ou “effa¬
cées”.
Hercule II est un bon outil de
travail pour les fanatiques de
la disquette. (Je n’irai pas plus
loin !). Il possède des modu¬
les très intéressants et très
puissants (trop puissants ?) :
Phoenix, Hoppy et Copylock.
On peut lui reprocher un man¬
que de “finition”. Certains
messages d’erreurs intempes¬
tifs viennent troubler votre
sérénité et la présentation est
parfois “dépouillée”. Que
voulez-vous, on prend goût
aux menus déroulants !
y trouverez égale¬
ment des indications précieuses
sur la structure du disque, des
secteurs et du catalogue. Par
contre, je ne sais pas si ma ver¬
sion avait un “bug” mais il ne
m’a pas été possible d’imprimer
une partie de la notice comme
cela est proposé dans le menu.
Le catalogue ne nécessite pas
d’explications supplémentaires.
La localisation des fichiers vous
permet d’obtenir différents ren¬
seignements tels que le bloc, la
piste et les secteurs où est loca¬
lisé le fichier en question. Bonne
initiative après l’affichage des
données, il peut y avoir une sor¬
tie vers l’éditeur de secteurs afin
d’utiliser les données obtenues.
A l’intérieur de Floppy, il est
possible d’imprimer la page
courante en appuyant sur
COPY. C’est une bonne idée
pour ceux qui ont du mal à rete¬
nir les chiffres. A propos, pour¬
quoi ne pas avoir rajouté une
option retour au menu principal
dans le menu de Floppy ? Il suf¬
fit d’appuyer sur “R” pour le
faire mais c’est tellement plus
simple lorsque l’on a tout sous
les yeux !
SECTOR 2.0
Ce module est réservé aux pos¬
sesseurs d’imprimante car il se
propose de sortir sur papier
l’analyse complète d’une dis¬
quette avec les ID de secteurs,
la taille des secteurs, le type de
données... les messages d’er¬
reurs du FDC.
DISPLAY 1.1
Cet utilitaire affiche différents
renseignements concernant les
fichiers : nom, type, adresse.
longueur et exécution,
tains logiciels du commerce ce
programme n’est pas exploita¬
ble.
Les données ne peuvent plus
être affichées (cas d’un catalo¬
gue déformé). A réserver en
priorité aux disquettes “norma¬
les”.
COPYACH
Il fait partie du même module
que Phoenix. On retrouve donc
les mêmes caractéristiques :
copie de fichiers non protégés,
du format standard (178 K)
jusqu’au format étendu (225
Ko), changement de noms, effa¬
cement et autres formatages.
AIDE
Dernière option du menu prin¬
cipal, elle comprend une tren¬
taine d’écrans qui vous rensei¬
gneront sur l’utilisation d’Her-
BAm PBS8A/
I l est enfin arrivé !
Mais qui ? Le Messie
bien sûr. Un compila¬
teur de BASIC sur
Amstrad c’est plutôt rare. Il
faut donc en profiter pour expli¬
quer aux néophytes le comment
du pourquoi.
Un compilateur c’est un pro¬
gramme qui transforme un lan¬
gage évolué (le BASIC par
exemple) en langage machine.
Quel est l’intérêt de la manœu¬
vre ? Vous savez tous qu’un
programme en BASIC n’est pas
exécuté directement après un
RUN, il y a d’abord une phase
de “traduction”. Le micropro¬
cesseur va transformer les ins¬
tructions BASIC en code com¬
préhensible par la machine.
C’est cette traduction qui expli¬
que la relative lenteur d’exécu¬
tion du BASIC par rapport au
langage machine. Le Messie se
propose donc de vous éviter
cette phase de traduction en
transformant immédiatement le
programme en code. Ce qui
veut dire que la vitesse d’exécu¬
tion va augmenter. Il n’est plus
alors nécessaire de connaître les
secrets du Z80 pour obtenir du
langage machine. Cela est mal¬
heureusement théorique puisqu’
en fait le programme obtenu est
rarement aussi compact et opti¬
misé que celui créé directement
en code machine.
Le mode d’emploi de Messie est
plutôt simple. 11 suffit de char¬
ger par LOAD le programme
BASIC à compiler puis de taper
LOAD“ERE” :CALL &C000.
Il s’agit surtout de respecter
cette syntaxe car le programme
principal occupe la mémoire
écran, il ne faut donc absolu¬
ment pas qu’il y ait une écriture
à ce moment.
Si tout se passe bien, l’écran se
“brouille” puis une certaine
agitation se fait entendre au
niveau du lecteur de disque.
Vous devez donc avoir préala¬
blement introduit une disquette
déprotégée contenant le pro¬
gramme de compilation puisque
la procédure est automatique.
Prévoyez une copie de l’origi¬
nal, on ne sait jamais...
Sur votre disquette, vous
devriez donc trouver un pro¬
gramme P.COM représentant le
résultat des cogitations de Mes¬
sie. Il ne reste qu’à lancer ce
programme et le tour est joué !
Il s’agissait là du cas idyllique ;
aucun problème ne venant se
glisser malicieusement dans le
déroulement de la procédure.
Mais il faut savoir qu’il y a par¬
fois des erreurs. Celles-ci peu¬
vent provenir d’instructions non
comprises par Le Messie (voir
liste) ou bien de la syntaxe par¬
ticulière du compilateur. Les
datas doivent être guillemetés
lorsqu’il s’agit de caractères
alphabétiques. LOAD et SAVE
ne traitent que les fichiers binai¬
res ; FILL ne fonctionne pas
toujours.
Du côté des performances, si
l’on laisse de côté les limitations
de reconnaissance des instruc¬
tions BASIC, la compilation
génère un code plus important
(en taille) que l’original. Pré¬
voyez de la place sur vos dis¬
quettes !
Vous trouverez sur la disquette
quelques programmes BASIC et
leurs équivalents compilés. Le
gain en vitesse est d’environ 4
secondes sur le programme
CARTE. (Un dessin calculé
s’affiche par rangée de points).
En revanche, le programme
compilé est 3 fois plus rapide
sur le tri à bulles portant sur 50
éléments. En général, tout ce
qui concerne les graphismes
n’est pas la meilleure démons¬
tration des possibilités de Mes¬
sie. Il est plus à l’aise dans le
domaine des calculs. En effet,
il accepte les variables en virgule
flottante. Vous n’êtes donc pas
limité aux nombres entiers, à
vous les sinus, cosinus et autres
tangentes.
Après un bref aperçu de ce nou¬
veau produit, il semblerait que
Le Messie soit un compilateur
simple d’emploi ne demandant
pas un apprentissage compli¬
qué. Par contre, il n’est pas
vraiment “intégral” malgré la
prise en compte des variables
autres que les entières. En effet.
APTE R
AUTO
CAT
CHAIN/CHAIN MERGE
CLEAR
CONT
COPYCHRS
DECS
DEF FN
DEFSTR
DELETE
DERR
EDIT
ENT
ERASE
ERL
EVERTY
FN
KEY DEF
LINE INPUT
FRAME
IMP
OUT
SQ
WAIT
WIDTH
les instructions incomplètes
nécessiteront des modifications
de vos programmes. De plus,
contrairement à ce qui est indi¬
qué sur la pochette, les instruc¬
tions de BASIC 1.1 (6128-664)
ne sont pas implantées sur Le
Messie. Les programmes com¬
portant ces instructions ne peu¬
vent être compilés directement
ni sur le 6128 ni sur le 664 à
fortiori...
C’est à peu près tout pour l’ins¬
tant. Le peu de temps qui m’a
été imparti pour essayer ce pro¬
gramme est peut-être la cause de
certaines erreurs de jugement.
Les prochaines versions appor¬
teront sans doute de nouvelles
possibilités. A suivre...
LIST
MAS K
MAX
MERGE
MID
MIN
ON BREAK
ON SQ GOSUB
RENUM
RESUME/RESUME NEXT
ROUND
RUN
SPC
SPEED WRITE
STRINGS
TAB
TRON/TROFF
ZONE
CALL
CLEAR INPUT
DI
El
ENV
ERR
ERROR
Liste des instructions non impiontées sur ie MESSIE
^Jean-Louis GACHES
CPM \
SüR-j^
464
vous possédez un Amstrad
464 muni d'un drive 3"
^H^^DDI-1 et d'un extension 64 K
RAM de marque DK'TRONICS (ou
outre) alors il vous est possible de tra¬
vailler sous système d'exploitation
CPM-t-, ce qui vous autorise l'accès à des
logiciels professionnels comme MULTI-
PLAN ou DBASE II.
Comme vous le savez, l'Amstrad CPC
modèle 464 (ou 664) utilise le CPM 2.2
qui ne dispose, pour le chargement des
logiciels, que d'une T.P.A. (Transient
Program Area = zone des programmes
transitoires débutant en lOOH) de 39.5
K maxi, ce qui est bien peu comparé aux
61 K que donne l'utilisation du CPM-I-
sur un CPC 6128 muni de ses 128 K de
RAM.
Il est néanmoins possible, avec une
extension RAM de 64 K connectée sur un
CPC 464, de disposer de 61 K de T.P.A.
sous CPM-H et donc d'utiliser bon nom¬
bre de logiciels écrits pour un 6128.
Rappelons que le CPM 2.2 est contenu,
pour sa partie résidente, sur les pistes 0
et 1 de votre disquette système (9 K) :
il s'agit du module C.C.P. (Console Com-
mand Processor = interpréteur de com¬
mandes) et du module B.D.O.S. (Basic
Disc Operating System = gestion géné¬
rale des disques), le B.1.0.S. (Basic Input
Output System = gestion de la relation
entre le matériel AMSTRAD et le logiciel)
étant contenu dans la ROM BIOS de 16
K (interface du DDI-1) dite ROM d'ex¬
tension disque.
Le CPM + , contrairement au CPM 2.2,
est contenu dans un fichier de 25 K
nommé C10CPM3.EMS.
Sur le disque système CPM-f, on trouve
en piste 0, secteur 1, un chargeur de 512
octets dont le rôle est de permettre le lan¬
cement du système d'exploitation.
En ce qui concerne le lancement, il faut
noter que s'il existe un fichier nommé
PROFILE.SUB, ce dernier est exécuté
automatiquement, ce qui permet de créer
des procédures BATCH ou par LOT
(comme pour un fichier MS DOS
AUTOEXEC.BAT).
Pour créer un disque système que nous
nommerons ESSAI (disque système
CPM-t- modèle 464), il convient de sui¬
vre le processus suivant.
CHOIX DU DISQUEMMM
Prendre un disque vierge 3 pouces non
formaté (disque nommé ESSAI).
FORMATAGE DU DISQUE
ESSAMMMMMMRMMnw
Ce disque sera formaté avec l'utilitaire
FORMAT.COM du CPM 2.2, en format
VENDOR (V) : les pistes 0 et 1 seront
alors réservées et remplies d'octets à la
valeur standard &E5 (valeur de l'octet
de formatage).
RECOPIE SUR LE DISQUE
ESSAI DU FICHIER
c 1 ocPMs.EMSÊmmmm
Il convient de posséder, comme déjà dit,
le CPM-l- et ses utilitaires :
Insérer le disque CPM 2.2
- Charger le CPM
-Taper: FILECOPY C10CPM3.EMS
<ENTER>
- Insérer le disque source contenant le
fichier Cl0CPM3.EMS <ENTER>
- Insérer le disque destination ESSAI
<ENTER>
- En fin de travail, insérer le disque CPM
2.2 <ENTER>
10 ' INITCPMS.BAS
ao '
30 ’ RECOPIE OU CHARGEUR DE CPM« SUR UN DISQUE VIERGE ESSAI FORMATE EN
FORMAT VENDOR
40 '
SO ' IC) GACHES Ja«r.-LouU
60 '
70 1 -
ÔO *
90 CLôiMOOE ItCLEARtMEMORY i9FFF
iOO FOR 1-iAOÛO TÜ (4ROOO-<>23} sREAO A»:P0K£ VAL(*'4'*-«'A$) iNEXT I
110 DATA F3,OE,Û7,CD,OF,B9,C5,£l,ÔO,A£r, IE,00,16,00, OE, 41, CD, 66» C6, Cl, CD, 18,B9,C9
lao PRINT **INSER£R DISQUE CPM^^ ModOle 6136 dans Ai <ENTER> ":CALL 4BB06:CAT
130 CALL iAÛOOiPRlNT “ChArgcncnt RAM OK”
140 IF N0T(P££K(4A£Û0)-&11 AND PEEK(tA£01>»tû AND PEEK(4A£02)»43 AND
P£EK(AA£03)»421 AND PEEKdAaOO-t-SlD-ftCF) THEN PRINT “DISQUE NON CPU* module
SiaS^tEND ELSE ISO
ISO PRINT “INSERER DISQUE ESSAI FORMATE VENDOR dans At <ENTER)“tCALL 4BB06
ISS POKE (iA0004l7>,44£
160 CALL AAOOO
170 PRINT “RECOPIE OK i“
160 END
Pratiquez ainsi :
- Insérer le disque système CPM 2.2 (une
copie bien évidemment) dans le drive A :
- Charger le CPM (ICPM) < ENTER>
- Taper FORMAT V <ENTER>
- Insérer le disque ESSAI à formater
<ENTER>
- Insérer le disque système CPM 2.2
<ENTER>
ECRITURE SUR LE DISQUE
ESSAI DU CHARGEUR DE
CPM
Il convient de lire le chargeur de 512
octets qui se trouve en piste 0, secteur 1
d'un aisque système CPM-l- modèle
6128 et de le recopier au même endroit
sur notre disque ESSAI.
Il faut donc demander à votre vendeur
le CPM-l- modèle 6128 et ses utilitaires
lors de l'achat de votre logiciel
rofessionnel.
our cette recopie du chargeur, le petit
jrogramme BASIC suivant nommé
NITCPM3.BAS sera exécuté.
Par la même occasion, recopiez sur votre
disque ESSAI les 2 fichiers CPM-l- sui¬
vants :
- SETKEYS.COM : utilitaire permettant
la redéfinition du code ASCII généré par
certaines touches
- KEYS.CCP : fichier ASCII donnant la
définition standard des touches pour l'in¬
terpréteur de commande du CPM-l-
et le fichier CPM 2.2 :
- SUBMIT.COM : utilitaire permettant
l'exécution d'un fichier BATCH avec
extension.SUB contenant des comman¬
des
ALTERATION DU FICHIER
C1 0CPM3.EMS«MMPIRWl«i
Pour tenir compte de la façon dont le
CPC 464 effectue le scanning du clavier,
il faut altérer le fichier C10CPM3.EMS
et remplacer l'octet qui se charge à
l'adresse T.P.A. &1 EO et qui vaut &C8,
par la valeur &C9 (code machine du
CPC n ° iô - Juillet/Août 1988
25
RET). A noter que le disque CPM 2.2
doit contenir aussi :
• DDT.COM : utilitaire débugger ou
outil de mise au point en Tangage
machine
• SAVE.COM : utilitaire de sauvegarde
de la T.P.A. sur disque
- Insérer le disque CPM 2.2 dans le drive
A :
- Charger le CPM
-Taper: FILECOPY C10CPM3.EMS
<ENTER>
- Insérer le disque source ESSAI
<ENTER>
• Insérer le disque destination CPM 2.2
<ENTER>
• En fin de travail, <ENTER>
UTILISATION DU DDT
Le disque CPM 2.2 dans le drive A
charger le CPM et appeler l'utilitaire
DDT.COM en tapant DDT <ENTER>
A) DDT <ENTER>
S'affiche à l'écran
DDT VERS 2.2
- Taper IC 10CPM3.EMS <ENTER> ...
entrée NOM FICHIER A TRAITER
-Taper R<ENTER> ... lecture du
FICHIER
S'affiche à l'écran
N EXT PC
6500 100
-Tajîer S1E0 <ENTER> ... MODIFI¬
CATION octet & 1EO
S'affiche à l'écran
01 EO C8
Il faut alors taper C9 à droite de C8,puis
un point pour sortir du mode modifica¬
tion et <ENTER>
- Taper G0 <ENTER> ... RETOUR AU
CPM
Il faut maintenant sauvegarder le nou¬
veau fichier ainsi altéré :
UTILISATION DE SAVE
A) Taper SAVE 100 C10CPM3.EMS
<ENTER>
Ce qui sauvegarde 100 blocs de 256
octets (25 600 octets en tout), à partir
de l'adresse &100 sur le disque CPM
2 . 2 .
Il suffit alors de retransférer notre fichier
altéré depuis le disque CPM 2.2 vers le
disque ESSAI.
-Taper FILECOPY C10CPM3
<ENTER>
- Le disque source étant placé
<ENTER>
- Insérer le disque destination ESSAI
dans le drive A : <ENTER>
- En fin de travail, insérer le disque CPM
2.2 <ENTER>
ATI
Toujours pour tenir compte des spécifi¬
cités du CPC 464, il faut créer un fichier
exécutable avant tout chargement du
CPM+ et qui sera nommé MODIF.COM.
Ce fichier contient du code machine 8080
et a pour objet de charger la valeur 0
à l'adresse &FDEF, avant de redonner
la main au CPM.
Ce fichier sera d'abord créé sur le dis¬
que CPM 2.2 par l'utilitaire DDT.COM
puis il sera transféré sur le disque ESSAI.
- Insérer le disque CPM 2.2
- Charger le CPM
- Appeler le DDT <ENTER>
- Taper A100 <ENTER> ... Création
code objet à partir de &100
- Taper le programme :
XRA A <ENTER> ... En Z80 : XOR A
STA OFDEF <ENTER> ... : LD
(&0FDEF), A
JMP 0 <ENTER> ... ; JP 0
- Taper CTRL C
- Taper SAVE 1 MODIF.COM
<ENTER>
Ce ciui sauve notre fichier MODIF.COM
(1 bloc de 256 octets) sur disque.
Maintenant transférons MODIF.COM
sur le disque ESSAI
- Insérer le disque CPM 2.2
- Charger le CPM
-Taper: FILECOPY MODIF.COM
<ENTER>
- Le disque source est en place
<ENTER>
- Insérer le disque destination ESSAI
<ENTER>
- En fin de travail, insérer le disque CPM
2.2 <ENTER>
<ENTER>
PRINT#9, CHR$(26) <ENTER>
CLOSEOUT <ENTER>
Vous pouvez maintenant, le disque
ESSAI étant dans le drive A :, charger
le CPM+ altéré, modèle 464.
En tapant ICPM, vous devez obtenir le
message :
CP/M Plus Amstrad Consumer Electronics
V}.0, 61K TPA, 1 dise drive
Par la suite, faites des recopies physi¬
ques de ce disque si vous voulez travail¬
ler sous CPM + .
EXEMPLE : MULTIPLAN DE
MICROSOFT
Nous allons vous indiquer comment pro¬
céder pour obtenir, dès le chargement de
CPM+ altéré, une entrée automatique
dans ce logiciel.
1 ) Prendre une copie physique du dis¬
que ESSAI nommée ESSA11
Si vous avez un système à 2 drives :
- Insérer le disque CPM 2.2 dans A
- Insérer le disque ESSA11 dans B (dis¬
que vierge non formaté ou format V)
- Charger le CPM
- Taper : COPYDISC <ENTER>
- Insérer dans A : le disque ESSAI
<ENTER>
- A la fin de la copie, insérer dans A :
le disque CPM 2.2 et <ENTER>
2) Effacer sur le disque ESSA11 le
fichier PROFILE.SUB
3) Créer sur le disque ESSA11 le nou¬
veau fichier PROFILE.SUB
Un DIR de notre disque ESSAI doit
donner :
C10CPM3.EMS 25K
MODIF.COM 1K
SETKEYS.COM 2K
SUBMIT.COM 2K
KEYS.CCP 1K
Pour charger le CPM+ modifié, il con¬
vient de créer sur le disque ESSAI un
fichier PROFILE.SUB (équivalent à
AUTOEXEC.BAT sous MS-DOS),
contenant :
MODIF
SETKEYS KEYS.CCP
Comment procéder ?
Retourner sous BASIC AMSDOS, insé¬
rer le di^ue ESSAI dans A : et, à défaut
d'un traitement de texte, taper en mode
DIRECT :
OPENOUT"PROFILE.SUB" <ENTER>
PRINT#9, "MODIF" <ENTER>
PRINT#9, "SETKEYS KEYS.CCP"
En mode direct, sous BASIC, tapez :
OPENOUT"PROFILE.SUB" <ENTER>
PRINT#9, "MODIF"<ENTER>.
PRINT#9, "SETKEYS
KEYS.128"<ENTER>
PRINT#9, "MP"<ENTER>.
PRINTiif9,CHR$(26)<ENTER>.(Code
End Of File)
CLOSEOUT<ENTER>.
4) . Charger sur le disque ESSA11 les 6
fichiers AAULTIPLAN 6128 :
MP.HLP
MP.COM
MP80
MP.COD
MP80.ASC
KEYS.128
5) Lancer MULTIPLAN par ICPM
Quel que soit le logiciel tournant sous
CPM+ avec votre Amstrad CPC 464
muni d'une extension 64K RAM, vous
utiliserez toujours les principes ci-dessus
définis. Bon courage !•
26
CPC n” 36- Juillet/A oût 1988
Pascal Maclou de Nevers s'étonne
de ne pas trouver au menu des dis¬
quettes CPC certains programmes
pourtant publiés.
S i tous les programmes ne figu¬
rent pas au menu des disquet¬
tes, la plupart s’y trouvent pourtant.
11 suffit de demander un catalogue par
CAT pour voir s’afficher la liste com¬
plète des fichiers présents. Vous ne
trouverez pas les programmes de la
rubrique “Trucs et Astuces” ni cer¬
tains petits programmes utilisés dans
les articles en exemples. Ces program¬
mes étant généralement très courts, il
est rapide et parfois préférable de les
saisir soi-même. Si certains program¬
mes sont absents du menu, c’est sou¬
vent parce qu’ils ne constituent qu’une
partie d’un jeu ou d’un utilitaire que
nous avons dû, de part leur longueur,
publier sur plusieurs numéros.
Cette remarque au sujet de l’utilisa¬
tion de CAT, significative de ce que
de nombreux lecteurs sont des néo¬
phytes, nous amène à conseiller aux
débutants de prendre connaissance
avant toute autre chose (avant le
BASIC notamment) des commandes
de l’AMSDOS. AMSDOS est le
système d’exploitation de votre CPC
sans lequel celui-ci ne serait qu’une
masse de matière plastique inutilisa¬
ble. C’est le langage de communica¬
tion élémentaire du CPC. Il est néces¬
saire de le maîtriser avant de passer à
autre chose. Ces commandes n’étant
vraiment pas nombreuses, on ne peut
pas considérer leur apprentissage
comme contraignant. En outre, cette
connaissance d’AMSDOS permettra
d’apprendre très facilement l’autre
système d’exploitation livré avec la
COURRIER
DES^B
LECTEURS
DISQUEHES CPC
BILLARD AMERICAIN
Paul Vernier de Saintes demande si
le programme Billard Américain ne
comporterait pas des erreurs.
f orsqu’un programme de CPC
ne tourne pas, plusieurs rai¬
sons à cela. Ou bien la saisie a été mal
effectuée - parfois même lorsque le
programme anti-erreurs, qui n’est pas
infaillible mais fait bien son travail
dans la majorité des cas, ne détecte
pas d’erreur - , ou bien la procédure
de sauvegarde et de lancement n’a pas
été conforme aux indications fournies
ou bien la liste publiée comporte des
erreurs, ce qui est le cas de Billard
Américain. Ces erreurs dans la liste
publiée peuvent se produire lorsque
nous possédons plusieurs versions
d’un même programme, bonnes et
mauvaises (les auteurs se trompent
parfois !) et que nous sortons sur
imprimante la mauvaise version..
D’autres erreurs proviennent d’une
insuffisance dans les tests, notamment
dans le cas de programmes complexes
qui ne provoqueront une erreur
qu’après une longue utilisation.
En tout état de cause, la meilleure
chose à faire quand vous avez un
doute, c’est-à-dire lorsque vous avez
effectué des vérifications avec anti¬
erreurs puis à la main, c’est de vous
connecter sur minitel à notre serveur
MHZ par le 36 15 où des menus vous
dirigeront vers la rubrique Calamités.
Si vous ne possédez pas de minitel, les
PTT en tiennent à votre disposition,
dans les bureaux de poste, que vous
pouvez consulter sur place. Il est évi¬
dent que les calamités ne seront pas
signalées au lendemain de la parution
en kiosque de votre revue préférée.
Attendez un peu, une semaine suffit
généralement, ou plutôt, ouvrez une
BAL (boîte aux lettres) dans le serveur
et communiquez vos remarques avec
précision. Nous consultons les BAL
quotidiennement. C’est beaucoup plus
rapide que le courrier qu’il est préfé¬
rable d’utiliser pour les cas les plus
épineux où les communications plus
longues, c’est plus facile d’accès que
le téléphone.
28
CPC n” 36- Juillet/Août 1988
machine : CP/M. Et la puissance de
ce système fait que ses utilisateurs
réguliers travaillent dans des condi¬
tions confortables. Le manuel est
assez clair sur l’emploi de ces deux
systèmes mais vous pouvez lire, ou
relire, les articles de Francis Vers-
cheure. Et, pour revenir aux disquet¬
tes CPC dont les fichiers (program¬
mes) sont transférables, des comman¬
des de copie de ces fichiers sur d’au¬
tres disquettes existent dans CP/M et
sont très puissantes. 11 vous sera alors
possible de transférer les utilitaires et
les jeux sur les disquettes correspon¬
dantes. 11 arrive, assez souvent, que
des programmes soient dispersés en
plusieurs fichiers sur la disquette
CPC. Pour les regrouper, il est néces¬
saire de connaître leur nom. Vous
trouverez ceux-ci dans les articles
explicatifs accompagnant les listes.
CPC AZERTY
Il arrive que des programmes ne
tournent pas sur mon CPC AZERTY,
nous dit Jacqueline Le Moal de
Quimper.
f l semble qu’AMSTRAD ait
raté son adaptation du CPC
au clavier AZERTY. A la sortie de ces
appareils, certains programmes de
jeux plantaient superbement ! A
l’heure actuelle, il arrive encore quel¬
ques problèmes.
11 .semble que quelque chose se passe
dans la “traduction” des codes de
touches. Des exemples ? Nous rece¬
vons des programmes sur disquettes
écrits sur AZERTY ou QWERTY. Ils
fonctionnent tous indifféremment sur
QWERTY ou AZERTY. En revan¬
che, si nous effectuons une saisie sur
AZERTY de la liste d’un programme
écrit sur QWERTY, il arrive que des
problèmes surviennent. Nous avons
cerné certains de ces inconvénients, les
commandes INK ou PAPER par
exemple, mais nous aimerions en dres¬
ser la liste exhaustive pour tenter, dans
la mesure du possible, de résoudre le
problème. Aussi lançons-nous un
appel aux utilisateurs de CPC
AZERTY et aux utilisateurs-Janus de
QWERTY/AZERTY pour qu’ils
nous transmettent le résultat de leurs
cogitations à ce sujet. Tout le monde
pourra ensuite en profiter, à commen¬
cer par les auteurs de programmes !
COMPILATION CPC
Répondant à une demande pres¬
sante et fournie, nous avons publié
la compilation, en deux tomes, des
CPC 1 à 4 et des CPC 5 à 8. Loïc
Hauteville de la Ferté-Gaucher se
plaint de ne pas y trouver la totalité
des articles et programmes des CPC
correspondants.
f l nous a effectivement fallu
faire des choix pour ne pas
gonfler exagérément le volume des
compilations, ce qui aurait eu pour
effet d’accroître le coût de ces ouvra¬
ges. C’est ainsi que nous avons fait
une impasse sur CHERRY-PAINT et
sur quelques autres programmes ou
articles. Mais l’essentiel est repris. Si
d’aventure, vous ne trouviez pas le
programme ou la suite de programme
que vous désiriez, il vous reste la solu¬
tion de lancer un appel par les petites
annonces dans la revue ou sur le ser¬
veur minitel. Il se trouvera toujours un
lecteur pour vous dépanner. Certains
lecteurs sont parfois à même de vous
procurer la collection complète des
CPC !
CPC n°36- Juillet/Août 1988
29
Ne cherchez plus ! MEDOR
le fait pour vous !
Cet utilitaire intéressera plus
particulièrement les
bidouilleurs d’octets invétérés.
Ecrit en langage machine, il
est très rapide : il examine la
mémoire et affiche en
quelques secondes l’adresse du
mot ou du bloc d’octets que
vous recherchez. Le même, en
BASIC, vous laisserait le
temps de prendre un café et
de reposer vos yeux de
programmeur acharné (à
condition que vous sachiez les
détacher de l’écran !). Ah, les
vertus thérapeutiques du
BASIC !
COMMENT ÇA MARCHE ?*|M
D'abord taper le programme
MEDOR.BAS et le lancer. Il créera ét
sauvegardera 2 programmes :
Le premier en BASIC ; MEDOR qui
est chargé de lancer.
Le deuxième en langage machine ;
MEDOR.BIN.
Une fois MEDOR et MEDOR.BIN
créés et sauvegardés, MEDOR.BAS
devient inutile.
Deux exemples d'utilisation :
Tout d'abord RUN" MEDOR
Exemple 1 : vous recherchez la
routine système &BD2B dans un
programme en langage machine.
1) Sélectionnez l'option BLOC HEXA
en appuyant sur la barre d'espace¬
ment et validez par < ENTER >
2) Précisez les 2 octets, sans préfixe :
2B BD (le plus faible d'abord 1) et
validez par <ENTER>
3) Définissez dans l'ordre l'adresse
initiale (4 caractères hexa obligatoi¬
rement, commencez par des zéros si
nécessaire) et l'adresse finale (même
rocédure) sans valider,
t la recherche s'effectue. Les
résultats s'affichent à l'écran et sont
imprimés (à condition que
l'imprimante ait été mise en service
avant l'utisation de MEDOR).
Exemple 2 : on recherche le mot
PLAYER dans un jeu en langage
machine pour le remplacer par
JOUEUR.
1) Sélectionnez l'option MOT(S)
ASCII et validez par <ENTER>
2) Précisez le mot : PLAYER (en
majuscules dans ce cas, pensez-y
avant I)
3) Procédez ensuite comme dans
l'exemple précédent.
ATTENTION. Evitez absolument les
erreurs de frappe. Afin de limiter la
taille du programme, les routines de
contrôle de saisie sont réduites au
minimum.
STRUCTURE DU
PROGRAMME
Elle est très simple :
- Choix de l'option MOT(S) ASCII /
BLOC HEXA
- Saisie du MOT ou du BLOC
- Définition de l'adresse initiale
- Définition de l'adresse finale
- Recherche en mémoire
- Fin du programme ou nouvelle
recherche.
Les programmeurs en assembleur
trouveront dans le programme source
des routines commentées : redéfinition
de caractères, affichage à l'écran,
impression, conversion ASCII/Hexa et
Hexa/ASCII pour des octets à 1 ou 2
chiffres.
Le programme est logé dans la
mémoire écran et scindé en plusieurs
blocs correspondant chacun à deux
lignes du bas de l'écran, ceci dans le
but de libérer le maximum de place
pour le programme à analyser#
GAGNER AU LOTO
un rêve qui peut devenir
réalité avec
LOTO - MATIC
le programmé qui vous révèle
tout ce que vous devez savoir
pour :
• trouver facilement les numéros
qui ont le plus de chance de sortir
• établir scientifiquement
les grilles les plus performantes
grâce aux tests du Lotoscope
• contrôler sans peine
les résultats de vos jeux
Editions écran et imprimante
Documentation détaillée
+ CADEAU contre 4 timbres
INFORMATIC Applications
B.P. 78 - 67800 BISCHHEIM
Tél. 88.33.58.85
30
CPC n° 36- Juillet/Août 1988
<1
w 0
i
0 3
(•
3
• 3 C
oû->*^ «ex**
CO
ttC
•> c
3 »
w
«
3 > •
fi
fl
fl
fi
0 3
30 X C £ 0
—
oo
fl
«
fl b fl
—
fl
fl
O •
flO 4 fl •«>>.'
0
—»
4
fl II** b
b
3
b
fl
O b'£ fi
O
4>
A
b -fl 0
Ofl
3
0-
O
© b
-C eu
K
«»
M
3 «-
e 0
fl
fi
0 3
0^<0 b 0£ fl fl
3
flfl
0
U flfl- 4
•H c
C
4
N w
Ob • 4 w w 4 O
O
fl
fi
H
b C
X
•
—
V •
• • U fl —
flfl
X
O
fl fl fl «A
fl 3
4
—
fl
flfl
«» A 4 b V c c
fl
C
4
C
C
-fl- b b
flO
fi
4
4
•
«-A
C b fl C b 0 0
C
> 4
6
3
••
wfl • fl
b
fl
M fl
• •3 3 C 4--
fl
O b
fl
fl 4 C-fl
flfl
b
fl
fl-
fl
U fl U
fifl O 0 flfl
s
• 3
fl
•
C
£ t- 0 C
£C
4
b
0»C
£
Z£ 0
fl c .. fl «• b b
fl
0
w
U
U
U 4 U 4 fl
U 4
hi
fl
4 A
b
w •
flflflwC3flfl
fl
fl U
0
1
*•
— w —V
- b
C
fl
—
o^v
-V b 1 0 0 > >
—
U
V
>• fl
V 3
©
4
flO
V
Ob
4 Ofl C ce
4
Ofl
O
fl
b*
■bA 0 fl-
V 0
O
b
4 4
b-
flb O
— fl — —00
b
U
O
fl
I
« C CO fl
4 w
N
fl
Ob
4
© 4 C
flflflflflfluu
fl
- 0
N
••
••
— — — — —
— —
—
—
—
—
— — —
————————
— —
— —
—
b b
b b
Il II
3C
O O
c
4 m
4
Ifl
4
—
—
0
• —
4
0.
44 4
4 4
.
flM
©
m c
fl
“> U
M
X 4
c
• X- X
X X
A fl © fl
flO
fl-A
fl
fl 04
fl 3
4
Ofl fl
- fl
fl • U Ofl
fl Ofl
4 fl fl fl£
fl C
b
flfl —
0©
- c .
0 0
©♦•O
•
0£ fl
fl- 0
©
-£ 3 fi£
©£- fi£
0 fl w
3 •
O
c fl©
fiO
3-a
fi O
«4©
—
fl U fi
fl© c
C
3*> 0--
OflO--
A fi 3 fi-
Ofl
S
-b£0
• O
fl V-
0 »© •
b4v
—
© 0
bOO •
O
• flOb w
40 fl flb w U
- O ex© fl 'b
•fl
flbO •
-on
•b£
- --O H
K4K
3
— fl
V O • —
an
• fl 'b fl
>0 fl -v • •
£ *-o --flb
N 4
Ui
O 4florfl-
K 4b.
£0 4-N C
• Mfl
fl
©O O
4© 0£
•-Nflw444444
U© fl U • 4 «
wâ4vMN£04
4
«
U
fl
4
©
flfl
fl
fl flfl
flfl flfl
fl
fl
fl
OO
4©
flfl
fl
^ ^fl««««
flfl flflO
O Ofl
cc
«
o««ooa©fl.<ozzoo©©
0.4©
C
«c O
««oo
«©©«C««flflflflO««©««OOZOO©©ZO«
©
jOo.JflUO*iOfl
--flflfln
•^40
•->
©n J
OOflfl
0ü*b0*b00©©©©fl00*^b<0« fl —flflO'^'xflO
1
4
1 —
1
—
4
H X X
1
U
«
4
N fl •
4
«
fl
—
4
1 ££
—
H
4
w
4
f U U
w
Il fl
3
4
■ 0 O
3
1
0
0
4
1 ——
0
O
— -
fi
O
— -
••
--00
O
fl
«> N
tn
« - 3- -
fl ♦ • ♦ 3
C* I >« #* Il
•mO IbbiQ^'tf (b
C« wl C) wt •
O»-
ZW tt.
«oc O
uN
^ b* C«
r K ►-©
M (uLUjO
O
qxo
OK
bO
a©
b m
«> fl
«■H
Il C'I
b^X)
ut*©
U fl II
XJfl
fl
• *» fl
-•Cfl
fl fl
«> e fl
c b
c AT?
fl
V fl>
fl b-
t3 •
fl t> fl
b ax)
û. c*>
fi oc
•« w 0
U
-fl a
usa
^ fl
fl >..-
b «H
fl fl 3 C
*> fl O O
fl c
• C--
•) fl fl fl
fl a
b fl c
Ofl 3
«> 3 fl
C &
fl a fl
VI b
AN
fl©
fl©
a.
—
b-
—
1
«
©
Z
U
fl
—
«
©©
b
—
fl
fi
—
O
X
1
«©
1
fl4
fl
w
«
— b
©
U
c
•
O
—
Z
-O
b fl
fi fl
©
b b
- •
fl
•
N •
£
ce
©fl
U
0©
fl£
—
^£
N
—
a ao-fl
b
fl£
4
fl
fl£
w
O
o«
O
4 40
— U
4 —
0 w
4 4 —
O
©
U
c fl fi 'fl '
o
© fl w©
fl
fl
© fl U©
0
—
o>
©
U
fl©4
fl-
4<X© U
——
O©© V
Z
© N©
©
— N - A flA
E
S fi-0
0
4
N fi-O
—
c
Ui©
N
©
*b
4«0 3
-b
0-0 3
0^‘NN0
O
.O .-fl-
••
— — O *bO
fi
— O “bO
O
tx
S
«
-flu
• b
. -00
flb
• -00
c
. . . -û
O
-Ou£3£
• «O flbOn
N N •
• O flbOn
•N
©
O
•
Z
£00
O 4
O 4«0
O 4
04fl0
©
£0- flfl
•
£« Cw CTw
£-«0 4«-
N© C£
-•O 4«-
Nn
©
4
O
b
©
4C
M
C
fl
AN
fl
flW
9
fl
fl
fl
©
fl flfl
fl flfl
4
©
U.
fl
flZ
fl
flZ
O
fl
fl
fl
W
fl flfl
fl flfl
©
©
oooo
o«
oo©*^
o«
oo«n
©
oooo«
«
09©0©Q
O
oa«o««©
©©CQ0«0««©©©
b
O
«
flflflfl
flO
flflOO
flO
flflOO
©
flflflflO
O
flO'^fl'^fl
9
flflOflOOO
*^0*Afl JO fl 000*^0
©
1
4
1
9
1
1
©
1
b
•
N
©
f
—
—
—
(N
«
a
fi
1
- O
O
>«
1
0
4-
fl
—
1 fl
—
1 fl C
C
©£
I O
4 w
C
w
I
3
b
N
« •
fl
o«
1
<
03
O
3
1 O
a
N
fl fl
fl
OO
1
>.
fl 0
0
1
•
fi
N
3 fl
fl
— —
—
— —
«
—
-flO
— —
O
— —
O
—
— —
— —
O 4
4
1 O
CPCn° 36 - Juillet/Août 1988
31
»»«»««««»««>«»»»»»»««««««««I
• •• •-
<•<•*• too>r**
o»»zoc
rrtà ff*ro »
X rr X
*—X X»74l»7
•- O- -
• 4 X
*voor(»c»o>«i*«
0>»OX9X»C
frr rrrr»
rr I
• ■
« c
c
OO
9 1
» •*
i»
ao
» C 1
*1 r
r
aa
r 1
« a
a
9<
•
« fi
fi
■ a
1
• M
1
»
9
«
X
rr X
o«*t<r
t^O
Haoo<^oo
oo n
a»ao
a»
maaaa»
O
r
-«rr rr
X
«
r
9
rr rr
n
«
9
a^' »
• «•7
P •
9
P P n
P» n
C9
P •*' P 9
« a X
**a
a
^P P 9
»« m
«««^
<*•
M
oa
0«0P
a pk
O
7i «iy®
rc ffl
» a
fi
a
Pa **p
*1 Z
# **
N
O
K « X
» 7
1
P 7P
* X
« •«>
>
P
7 n
» r
a
X
•- a
« V
a
O
1»
r
»
a
»
O
n
»
>
«
H
1
«
1
•
O
1
»
Z
•pnv»»»» ««a*
. < •V' V
A <4» -« • ttft 0»
- fi-
fi-
c 1
c •
P 1
P 1
P 1
P 1
r 1
r 1
» 1
tt 1
•
•
■
•
orroooro c
roooro c
aooaaaoa c
O
aaaoa c
r rrr r m
rrr r m
r rrr r »
rrr r «
H
H
pa^P9paa
pfipaa
-»ppa9'*p9 ®
Pa9H»9 9
aN9**- 9 ••
awa-*. 9 ••
PP'4 OP9® a
•*
»p 9 • a
(•#»» «-rpp O
7
-rp * O
-P7 -P a
-P a
* 9>i m
«•
9® m
a « a »
a 9
a 9
»
9
9 n
a
n
P
a
Z
Z
a
H
r
m
a
r
•
a
«•p«
ap P P n
*•7 0
C ^-<0
P 7
P 9
-®<
9 P ana
r P
Ofi - P
P < ••
rp Hrt ^
9pr
--fcOP
P •>-
• 7
7 r
r r—
rp
P rpp
PC
PP 7
an 7
rPC-
P -
P r P
-9
P a*«
X 0
►- P
»r
P ^ n
K
P '-P
*a
P
« P
n ap
•
P an
•<M
^ P -1 0
1
P C
‘ 0
^Pa
*n
0 P 0 0
Nr
c
»-
nje
0 ir
PP
n P P ••
rx
rap a
<
- - c
• N
X'H'O
-»-4
px'pp
t
c 7 1 0
M- «•
< •*•7
P
7
r
«>«•
«•M
•• «•
P "
P *»
P P
•40
•4P
•47
•49
•49
-9
•«P
-P
" P
n <4
n <
77
7
79
pr
P -
P
P
P
P -
P
PP
r*»
r"
r
P
C
-P
P *•
-c
9
pp
9*»
an
-P
ap
4 —
PC
^ P
• 1
c
aa
r
a-*
OP
O
ap
C
a
fflp
7
m
®c
®p
9
9
a
0
r
m
a
m
*•4
a
Z
Z
P
a
•4
r
M
rn
a
0
r
ft
a
r
••
x(09O«» w^oxnr vi**o3»or
mcm'vc xz»m*90 xxzm'to
9 nrn or-H
r r
«4rt«t •avNo* »a«NOP
**0 ^ H* <7
Ot-4^ «^^(7
• a ® a
r • % n P •
** -a x' 7 X.
i •
xopi^orao
aoaoa
a
a
4,00
ororfi
wor t^orrr ••r
aoo or
ra
aooara
aoor®»
aaoaaoca
naoao
O
m
aaa
aoaoc
aaoaaooozo
oc.a ao
oc
oaazoc
oaaoaa
nrp ®r
Hao>o
c
r
r r ®
O
azr r
®
arro 9
arr rr
r xr
•i
r
r r ®
Nr r
Z
rr X
rr
PP7PPPP
P P
Z
N •*#
Papa
7-403 <^»p nyy
99P 9 P
99
7p 7PP 7
7P 7P--
9-4H •4« -49
m
- «9
-4P-49®
N»*. NM.X- P**»
n Q H
n
-•4P O- -
«- 40 .
a • - 4 ^ y
• P
9
a 9
•4% H- ••
• X 7 * X- -a •
C ^ nu
P
•4X •«-
-4* -
M 7 t- ®
P ®
P O
P9-9Z
a 4 a 4P n A
n M. rg
-P
— P
9 0 9 P
a O
1
9 ®
< 4 # n • O
P- poa 0 P
•-9
9P
9 P
7 a
c
-P7PC
94 - cw .4 c a
®a
a "
an
<•
9 •-# ®<
c c - •» n
9
a
a O n
& r 7 4^ 0
• P • n
X790
.. ,*3
»•--• <
• ••
I -•
0
4
-c<
fi a4
M
7
—
1 P
7 O
7
9
vn 0 «
P Z»
0
P
P
P07P
C
••
P**rC
P ••
<
fl
4 4
ra
N
—
P
P P
a
H
9
4
PP 7
P a
«
a
P
ra a#
PC
7
n
n 0 X
a •<
n
r
7 P P
pm
a
0
P
ar
4 a
P
7
4
■ P
P
r
P
7 a
r O
4
r
O
7
195
= = =:
=—=—====r=—C0G65
he>;
â.=-=-
200
DATA
21,ôv.EF.1Î.D4.Ac.Ol
.28.
205
DATA
00, ED. BO.l 1.58, EF. CD,
1173
210
DATA
E7.06.2C.3E.20.CD,SA,
.BB.
E5'
ne.
DATA
10.F9.il, 7B,EF.CD,D3,
.E~.
1291
220
DATA
06.50.3E.9h,CD.5A.BB,
,10.
800
“r-c
DATA
F9.26,00,16,4F,2E.02-
■ lE.
466
230
DATA
16,CD,66.BB.CD.ûC.BB,
,21.
1049
235
DATA
37,FF.CD,2E,BD,30,04,
,Zù,
aso
240
DATA
'Xi. 18,02.36, FF, 2(5,01,
.2E,
420
245
DATA
01,CD.75,BB.l1,80.EF,
,CD.
1099
25(i
DATA
D3,E7,CD,06,BB.FE,0D.
.28.
114-
"CC
DATA
1F.FE,20,20.F5.26.0!,
,2E.
o79
260
DATA
01.CD,75.BB.Îi,9F,EF.
wL'i
1130
265
DATA
D.3.E7.CD,Û6,BE.FE.0D,CA,
1309
270
DATA
32,DF,FE.20.28. Cf.IB.
C2,
1072
i-re
<J
DATA
il.BE,EF.CD.DD.E7.CD.
81.
1437
280
DATA BB,1,(6.00,21,38,FF,CD.
Oo,
748
235
DATA BB.FE,0D,CA,9E,DF.CD.
Ci.
1435
290
DATA
£7.77,23.04.78,32,34.
FF,
366
noc
TAn
DATA FE,D0.20,EA,C3.3C.DF.
00.
1194
••V V
305
DATA
18.6C.lS,00,li,3û.F~,
CD,
673
310
DATA
DD, E7,CD,81.BB,06,00,
21.
1012
315
DATA
38,FF,CD.06,BB,FE,ÔD.
28.
1016
320
DATA
55,CD.7F,DF.38.F4,CD.
Cl.
1338
VZ J
DATA
E7.CD.E7.E7. CB.27,CB.
27,
i-'Ui.
330 DATA CB.27.CB.27,4F.CD.0t..BB, 961
-j; DATA CD.7F,DF.38.F3,CD.Cl,E7, 1483
340 DATA CD,E7,E7.S1,77,04.78,32. 1089
345 DATA 34.FF,^E,D0,28.26,23,11. 901
350 DATA 50,F7,CD.D3,E7.1S,C3,CD, 1395
355 DATA 95,DF.FE,30.38,FE.47,30. 1263
360 DATA 0/.FE,3A,3S,Ciâ,FE.41.C9, 901
365 DATA FE,FF,C9.A7,C9,FE,61,DB. 1645
370 DATA F£.67.D0,D6,20,C9,CD,e4. 1349
375 DATA BB.11.53,F7,CD,DD.E7.CD. 13?o
330 DATA 81,BB,CD.CC.DF,ED.53.30, 1316
385 DATA FF,CD,34.BB,11.69,F7,CD. 1353
390 DATA DD,E7,CD,81.BB,CD,CC.DF, 1605
395 DATA ED,53,32.F.11.7D,F7.CD. 1219
400 DATA DC.E7,18.29.CD.D5.DF,57. 1245
405 DATA CD.D5,DF.5F.C9.CD.E6.DF, 1595
410 DATA CB,27,CB.27,CB,27,CB,27, 96E
415 DATA 4F.CD.E6.DF,B1,C9.CD,06, 1273
420 DATA BB,CD,7F,DF,38,FS,CD.Ci, 1444
425 DATA E7.CD.E7,E7,C9,CD,84,BB, 1623
430 DATA 18,00,2A,30,FF,C3.30,E7. 843
435 :
440 DATA 22,35,FF,11.38,FF,3A,34, vgo
445 DATA FF,47.1A,BE.20.4A,13,23, 702
450 DATA 10.F8,2A,35,FF,E5,CB.3C, 1106
455 DATA CB.3C,CB,3C.CB,3C,7C,CD. 1118
460 DATA BA,E7,CD,C1,E7,E1,E5,7C, 1624
465 DATA E6.0F,CD,BA,E7,CD,C1,E7, 1496
470 DATA E1,E5,CB,3D,CB,3D,CB,3D, 1246'
475 DATA CB.3D,7D,CD,BA,E7,CD,C1, 1409
'B5
.DH
CB
^Cl
:.&ï
:dc
c:
■BJ
DI4
DH
■CK
>Dl
:E):
■■■DE
' EA
yD
/ED
BH
DL
■Vb
.'EÜ
.r,r
■DN
. D2
DC
/Cï
:ec
,;CH
;CK
7DK
>DY
>CF
■ EH
■DW
.>DV
'-DE
7DH
■EE
4gO
DATA
E7
.El
,E5
* ' D
.Et.
. OF
, CD
.BA.
] 44o
435
DATA
f-
,CD
.Cl
• E7
T‘
.C5
..Z4.
490
DATA
3E
.20
,CD
.Ci
f E7
.10
,F9
liSi
495
jATh
2h
-»c
1 -Ow*
.FF
,23
.FF
.• j
352
500
DhTA
DD
.CI
7^
r.n pr
f Lr i/ 1 DP
» À •. ' •
1002
J- ‘W
DATA
57
.7C
.DD
.BE
.M
i . X
f
1 ^ V
.91
) i
« i i «
■:3i
DATA
81
.F'
.CD
.D3
,E7
.11
.B5
.F7.
1465
c:' c
DATA
CD
.DD
.£-
.CD
. 0'6
.BB
.FE
. vU'.
13":
520
DATA
CA,
cr,
. J"*.
.D"
rr.
. L’’
.11
.B5,
.F9
. L-l',
1:57
525
DATA
DO,
tE7:
.C6.
.90
■^7
.CE, 40
-•7
• 4 . < «
1142
530
DATA
C9,
,CD,
, 5A.
,BB,
,F5,
• 3"
,FF.
ÎZ96
535
DATA
FE,
.9F,
, 20 ,
.05,
.Fl,
.CD,
.2E,
,BD,
1ZZ4
540 DATA
C9,
,F1.
( U • 1
,iA,
■ FE,
.00,
.CB.
,CD,
1 : 2 s
545
DATA
5A,
,BB,
i T
1 iCi
,18,
.F6,
1 1h.
,FE,
,00,
340
550
DATA C6.
,CD.
T!
1 W* 1
iE7.
,13.
1 P
,9t,
,Dé.
l ■-•vi*
ee-r
JwJ
DATA
30.
fE,
i/'»
( * V- <
,D8,
r Ub t
,07,
,C9,
,00.
7JC
56('
:
DATA
OC,
. ib,
66,
•’r-
, -L,
3C.
00.
i,3r
570
DATA
CF,
EC.
ED,
ED.
ED.
ED.
lH,
FF.
1842
575
DATA
Fl,
wM,
BA,BB.
EB.AB,
23
FF.
1320
580
DATA
OF,
AA,
BE.
Bh.BA.
AA,
BA,
FF.
1310
535
DATA
E7,
■37,
B7,
■37,
C“r
‘ • 1
B7,
77
FF,
1244
590
DATA
18,
20,
4C,
45,
44 ,
4F.
C'*
20.
4,63
J
DATA
13.
20.
72,
65,
63,
63.
iSv
600
DATA
63,
66,
bS.
20.
65.
tE.
20 .
LT-.
Uà,. «
686
605
DATA
FB.
6D,
6F,
o9.
t5.
20 ,
2E,
Sù9
610
DATA
2E,
2E.
00,
FC,
FD,
FE,
FF,
F/O,
1106
615
DATA
OD.
13.
20,
4C,
4F,
54,
28.
C7
432
fc20
DATA
29.
20,
41.
43.
49.
49 .
iO.
466
625
DATA
13.
20,
20,
20 ,
42,
4C.
4F.
43,
408
630 DATA 20,48,45,56.41,20.00.OD, 371
635 DATA 20.4D,4F,54.28,53.29.20, 463
640 DATA 41.53,43,49.49,20.20.20, 457
645 DATA 18,20,42,4C,4F.43.20.48, 448
650 DATA 45,58,41.20.18.00.OD,OA. 301
o55 DATA OA.4D.4F.54.23.53,29.20. 44o
660 DATA 41.53,43.49.49.20,28.32. 483
665 DATA 30,33,20,43.41,.52.2E,4D, 4"3
670 DATA 41,5S.49,29,3A,20.00.00. 357
:dh
>DJ
EH
‘,CN
>DH
?DF
>DB
/EE
ZF
>CK
>CN
/DP
)DH
>DL
>EF
>DR
>EL
680 DATA OD,OA,OA.42, 43 . 49 , 43 . 20 . 353
685 DATA 48.45,58.41.20,28,32,-30 , 464
690 DATA 36,20,4F,43,54,45,54.53, 554
o95 DATA 20.4D,4i,53.29.3A.20,00, 393
700 DATA 20,20,00,OD.OA.OA,41.44, 230
705 DATA 52.45.53,53,45.20.49.48, 569
710 DATA 49.54.49,41,4C.45,3A,20. 530
715 DATA 00,ÛD,0A.0A.4i.44.52,45, 317
720 DATA 53.53,45,20,46,49,4E.41, 553
725 DATA 4C,45.3A,20.00,OD.'.;»A,OA, 268
730 DATA 00,OD,OA,OA,4E,4F,55.56. 361
735 DATA 45,4C,4C.45,20,52,45,43. 540
740 DATA 48,45,52.43,48,45,3A,20, 521
745 DATA 16,5B,45.4E,54,45.52,5D, 590
750 DATA 18,20,53.49,4E,4F,4E,20. 479
755 DATA 41.55,54,52,45,20,54,4F, 580
760 DATA 55,43,48.45,O0,0D,0A,0A, 326
DT
■'H
Dt
■' i-b
DP
>L--
!■'
EC
2i
;DT
■ DF
.DZ
DF
/Df
CD
■ZE
'BA
>E:Z
■EV
/DQ
-BD
BT
>Bh
CH
D'J
. BG
. 5J
■BC
, E0
/BB
'BB
>&V
:>BF
30
BP
BF
/BR
,AE
Ba
,BR
/BL
' L'H
>BG
/BP
/BL
/BH
>BC
>BR
>BA
/BF
/BX
>BA
>BW
>BH
>BTB
I
T
I
I II s’agit d’un utilitaire
permettant d’accélérer la
vitesse d’affichage des
messages à l’écran.
L’affichage sur Amstrad est
en effet un peu lent, ceci
étant dû en grande partie à la
gestion des fenêtres texte.
Aussi, ai-je réécrit une routine
d’affichage beaucoup plus
rapide.
SERVEUR
MINITEL
N'oubliez pas
Lo B.A.L. permet un dialogue direct avec
la rédaction.
Les petites annonces ouvrent la porte aux
bonnes affaires !
£ e programme a été écrit en
assembleur. La routine d'affi¬
chage peut être utilisée soit dans des pro¬
grammes en assembleur, soit en BASIC.
Un exemple : pour afficher 20 fois le mot
"BONJOUR" en BASIC Wonc avec la
routine d'affichage de la ROMj, il faut
0,3 seconde. Avec ma routine, il ne faut
plus que 0,12 seconde. On comprendra
donc aisément l'intérêt d'une telle pos¬
sibilité dans des programmes qui affi¬
chent en permanence des données à
l'écran.
L'activation de la nouvelle routine est
obtenue grâce à deux nouvelles com¬
mandes RSX. L'utilisation est quant à elle
complètement automatique. Le pro¬
gramme est censé n'être utilisé qu'en
mode 2 ; ce mode n'autorise, en effet,
ue 2 couleurs. Il n'y a donc pas de test
e couleur de crayon comme pour le
mode 0 ou 1 ; c'est là une des explica¬
tions de la rapidité d'exécution. D'autre
part, il ne faut pas que l'écran ait
"roulé" : c'est-à-dire qu'il y ait eu écri¬
ture sur la 26* ligne.
Une fois le programme machine chargé
en mémoire à l'adresse 41000, l'activa¬
tion des nouvelles commandes RSX se
fait simplement par un CALL 41000.
Deux nouvelles RSX sont alors créées.
RAPID : qui permet un affichage rapide.
Tout ce qui apparaîtra à l'écran sera
affiché en mode rapide, sauf les com¬
mandes tapées au clavier. Les définitions
de fenêtres sont quant à elles ignorées.
Par exemple, si on fait PRINT "BON¬
JOUR", le mot "BONJOUR" sera affi¬
ché en mode rapide. Le catalogue d'une
disquette est lui aussi affiché sous ce
mode. Pour utiliser la commande RAPID,
il faut être sous mode 2.
NORM : permet le retour à un affichage
normal.
PRINCIPE GENERAL DE FONC¬
TIONNEMENT DE LA ROUTINE
Lorsque la commande RAPID est exécu¬
tée, elle détourne le vecteur d'affichage
(#BB5A) vers la nouvelle routine. A ce
moment, tout caractère destiné à # BB5A
contenu dans l'accumulateur) sera uti-
isé par la routine. Le programme
distingue :
- les caractères de contrôle (codes ASCII
<32), sauf CR (ASCII 13) et LF (ASCII
10). Si un tel caractère est rencontré,
alors il est affiché par la routine de la
ROM. Exemple : si l'on fait un PRINT
CHR$(7) et que l'on se trouve en mode
rapide, alors on entendra bien un bip et
non le caractère n° 7 qui s'affichera.
Seuls les caractères 10 et 13 sont traités
par la routine car ceux-ci reviennent
assez souvent : une chaîne de caractè¬
res se termine en effet avec ces deux
caractères ; ils sont donc traités par la
nouvelle routine afin d'optimiser encore
plus la vitesse.
- les autres caractères (code
ASCII >31). Dans ce cas, la routine com¬
porte en entrée le code ASCII du carac¬
tère à afficher dans l'accumulateur. On
calcule ensuite l'adresse en ROM de la
définition du caractère à partir de son
code ASCII. Le programme recherche
ensuite les coordonnées X et Y du cur¬
seur, calcule l'adresse en mémoire vidéo
correspondant à cette position et affiche
le caractère à cette adresse. La routine
augmente ensuite la position du curseur
d'une position avec vérification et con¬
trôle crarrivée en fin de ligne. D'autre
part, comme la configuration des adres¬
ses écran change lorsque l'on écrit sur la
26* ligne, un test est effectué pour savoir
si l'on écrit sur cette ligne. Si oui, alors
la routine émet un bip invitant à taper sur
une touche pour pouvoir continuer l'écri¬
ture, mais après avoir effacé l'écran.
Je terminerai par un simple test d'exem¬
ple :
FOR 1= 1 TO 100:PRINT "REVUE DES
CPC";;NEXT
En affichage normal, le programme
s'exécute en 2.46 secondes. Avec la nou¬
velle routine rapide, il ne met que 0.6
seconde I
CPC n° 36- Juillet/Août 1988
35
10 REM-ACCELERATEUR D'AFFICHAGE SOUS MOD >CC •
E 2-
20 REM >«E
30 REM - Fonctions RSX ; RAF'ID : augmente la >AY
vitesse d'affichage
40 REM - NORM : retour a la >L!Y
vitesse normale
50 REM >MH
70 REM->TJ
80 MODE 1:MEM0RY 40999;1=100:LOCATE 10,10!PRlNT"AFficha >RJ
ge dans"
90 c=5:F(]R i=41000 TO 41450 STEP 20:L0CATE 24,10:PRINT >WN
INT(c);"s":c=c-0.2
91 5=0:F0R k=i TO i+19:READ a$:a=VAL("J!"+a$);s=s-fa:POKE >LH
k, a:NEXT
92 READ ctrl$:IF s<>VAL("S("+ctrl$) THEN PRINT"Erreur a >CM
la ligne ";1:END
93 1=1+10:NEXT:CALL 40000 >UD
94 INK 0,0;B0RDER 0;M0DE 2:1RAPID;PRINT TAB(20)"* ACCEL >Blil
ERATEUR D'AFFICHAGE BOUS MODE 2 ♦"
95 LOCATE 22,4;PRINT"* ♦ ♦ Réalisé par Frédéric Sol * * >LH
*'';L0CATE 4,7:PRINT"NOUVELLES COMWNDES RSX DISPONIBLE
Sr'tLXATE 10,10:PRINT”1RAPID : autorise l'affichage de
tous les messages en vitesse rapide"
96 LXATE 10,11:PRINT"1N0RM ; Retour de la vitesse d'a >LD
ffichage en vitesse normale"
97 LOCATE 1,20:PRINT' Attention: cette fonction nouvell >0Y
e n'est valable que sous mode 2, le mode pro. L'ecra
n ne doit pas rouler (Curseur plus bas que 25 lignes).
Si un message":PRINT TAB(15);"d'erreur apparait, mettez
-vous en MODE 2"
98 PRINT TAB(IO)"Nouvelle limite haute de la mémoire (H >GT
IHEM) ; ";HIMEM:LOCATE 1,1:END
100 DATA 21,6D,AO,1,71,AO,CD,D1,BC,21,7C,AO,1,80,AO,CD, >RU
D1,BC,2A,5B,9D7
110 DATA BB,22,D3,A0,3A,9,0,FE,82,20,13,21,C8,B1,22,D2, >QA
A1,21,85,B2,XD
120 DATA 22,D6,A1,21,C9,B1,22,D8,A1,C9,21,C3,B7,22,D2,A >UP
l, 21,26,67,22,9EB
130 DATA D6,A1,21,C4,B7,22,D8,A1,C9,FC,A6,71,AÔ,76,A0,C >X
3,8A,AO,52,41,BCO
140 DATA 5ô,49,C4,ô,6D,Aô,SÛ,H0,35,Aô,C3,BA,Hi,4E,4F,52 >RC
,CD,0,2A,D2,985
150 DATA A1,7E,FE,2,C2,64,A1,2A,D8,A1,7E,B7,C2,70,A1,23 >TG •
,7E,B7,C2,70,B1B
160 DATA A1,3E,C3,32,5A,BB,21,AD,A0,22,5B,BB,C9,E5,D5,C >VF
5,F5,F3,2A,D6,BBF
170 DATA A1,FE,A,20,3,C3,53,A1,FE,D,20,A.2A,D6,A1,3E,0, >MJ
23,77,C3,7F4
180 DATA 5F,A1,FE,20,30,7,F1,C1,D1,E1,CF,0,94,2A,D2,A1, >QU
7E,FE,2,28,A5F
190 DATA 9,CD,BA,A1,CD,64,A1,C3,5F,A1,21,0,0,F1,F5,6F,2 >0B
9,29,29,11,BC8
200 DATA 0,38,'19,D9,CB,91,ED,49,D9,11.DA,A1,1.B,0,ED,B0 >PY
,D9,CB,D1,A3C
210 DATA ED,49,D9,2A,D6,Al,23,7E,2B,6E,67,5C,16,0,62,D5 >TH
,54,5D,29.29,7FD
220 DATA 19,29.29,29,29,01,19.EB,2A,D8,Al,TE,23,66,6F,1 >TM
9,7C,E6,7.67,794
230 DATA 3E,C0,84,67,1,0.8,3E,8,11,DA,A1,F5,1A,77,F1,3D >L2
,28,4,9,6AD
240 DATA 13,18,F5,2A,D6,A1,23,7E,3C,FE,50,28,3,77,18,F, >RP
AF,77,2B,7E,784
250 DATA 3C,FE,19,20,5,CD,C6,A1,18,1,77,F1,C1,D1,E1,C9, >RK
21,75,A1,7E,A1E
260 DATA B7,C8,CD,5A,BB,23,18,F7,21,98,A1.18.F2,4C,65,2 >UG
0,73,79,73,74,998
270 DATA 65,60,65,20,64,6F,69,74,20,65,74,72,65,20,73,6 >TF
F,75,73,20,6D,74E
280 DATA 6F,64,65,20,32,A,D,0,4C,27,65,63,72,61,6E,20,6 >NE
E, 65,20,64,594
290 DATA 6F,69,74,20,70,61,73,20,61,76,6F,69,72,20,72,6 >RB
F, 75,6C,65,A,742
300 DATA D,0,2A,D3,A0,3E,CF,32.5A,BB,22,5B,BB,C9,3E,7,C >QZ
D,D2,A0,CD,950
310 DATA 6,BB,CD,6C,BB,C9,C8,B1,0,38,B5,B2,C9,B1,0,0,66 >^E
,66,66,3E,950
320 DATA 6,7C,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82 >RZ*
•COPYRIGHT 1985 MICRO-APPLICftTlüN.
.DAMS.
ORG 41000
ENT ♦
LD hlydebutl
LD bcytabrsxl
CALL «bcdl
LD hl,debut2
LD bc,tabrsx2
CALL ttbcdl
LD hl,(«bb5b)
LD (adrom),hl
LD a,<9)
CP «82
JR nz,c664
36
CPC n°36- Juillet/Août 1988
; ligne
LD
hl«#blc8
LD
(mode)«hl
LD
hl,«b285
LD
(poseur)«hl
LD
hl,#blc9
LD
RET
(roll)«hl
C664
LD
hl,#b7c3
LD
(mode)«hl
LD
hl«•b726
LD
(poseur)«hl
LD
hl,#b7c4
LO
RET
(roll> «hl
début 1
DEFS
4
tabrsx1
DEFM
noml
JP
comml
noml
DEFM
RAPI
DEFB
••D"+#80
DEFB
0
debut2
DEFS
4
tabrsx2
DEFM
nom2
JP
comffl2
nom2
DEFM
NOR
DEFB
"M'*+#80
DEFB
0
comml
LD
hl«(mode)
LD
a« (hl )
la
CP
2
JP
nz «errmod
LD
hl«(roi1)
LD
a, (hl)
OR
a
JP
nz «errol1
INC
hl
LD
a«(hl)
OR
a
JP
nz «errol1
LD
a« 195
LD
(#bb5a)«a
LD
hl«ici
LD
RET
(«bbSb),hl
ici
PUSH
hl
PUSH
de
PUSH
bc
PUSH
DI
af
LD
hl,(poseur)
CP
10
JR
nz «paslO
JP
augmlig
paslO
CP
13
JR
nz ,pasl3
LD
hl « (poseur)
LD
a«0
INC
hl
LD
(hl> «a
JP
teri
pasl3
CP
32
JR
ne «ok
POP
af
POP
bc
POP
de
POP
hl
affmes
RST
08
adrom
DEFM 0
□k
LD
hl«(mode)
LD
a« (hl)
CP
2
JR
Z,cebon
CALL comm2
CALL errmod
JP
teri
cebon
LD
hl «0
POP
af
PUSH af
LD
1 «a
ADD
hl «hl
ADD
hl ,hl
ADD
hl ,hl
LD
de««3800
ADD
EXX
hl «de
RES
2,c
OUT
EXX
(c) «c
LD
de«bloc
LD
bc,8
LDIR
EXX
SET
2,c
OUT
EXX
(c) «c
LD
hl«(poseur]
INC
hl
LD
a«(hl)
DEC
hl
I colonne«BO'
I restaure #bb5a
I a-ffiche message
; cherche définition du
$ caractère en ROM et
I le place en RAM a 1 'adresse
I bloc
) colonne
LD
LO
LO
LD
LD
PUSH
LD
LD
ADD
ADD
ADD
ADD
ADD
ADD
ADD
l,<hl)
h,a
e,h
d,0
h ,d
de
d f h
hl ,hl
hl ,hl
hl «de
hl «hl
hl «hl
hl «hl
hl «hl
I calcule l'adresse en mémoire
I video de la position courante
I du curseur
ligne
augmlig
pas26
ter i
errmod
g loup
erroll
messl
mess2
comm2
efface
mode
début
poseur
roi 1
bloc
POP
de
ADD
hl «de
EX
de,hl
LD
hl«(roi 1)
LD
a«(hl)
INC
hl
LD
h« (hl)
LD
1 *4
ADD
hl «de
LD
a«h
AND
7
LD
h,a
LD
a«4lcO
ADD
a«h
LO
h«a
LD
bc««aoo
LD
a,8
LD
de,bloc
PUSH
af
LD
a,(de)
LD
(hl) ,a
POP
af
DEC
a
JR
Z «apres
ADD
hl «bc
INC
de
JR
lire
LD
hl« (poseur)
INC
hl
LD
a«(hl)
INC
a
CP
80
JR
Z «ligne
LD
(hl ) «a
JR
teri
XOR
a
LD
(hl)«a
DEC
hl
LD
a,(hl>
INC
a
CP
25
JR
nz «pas26
CALL
efface
JR
teri
LD
(hl)«a
POP
af
POP
bc
POP
de
POP
RET
hl
LD
hl«messl
LD
a« (hl)
OR
a
RET
Z-
CALL «bbSa
INC
hl
JR
g loup
LD
ht «mess2
JR
gl oup
; hl*adr écran
; affiche le caractère
atteint fin de ligne 7
si oui « increm No ligne
; 26eme ligne ?
I bip et cls
DEFM Le système doit etr
DEFM e sous mode 2
DEFB 10,13«0
DEFM L'écran ne doit pa
DEFM s avoir roule
DEFB 10,13«0
hl« (adrom)
a«#cf
(MbbSa)«a
(«bbSb)«hl
affmes
#bb06
«bb6c
LD
LD
LD
LD
RET
LD
CALL
CALL
CALL
RET
DEFS 2
DEFM «3800
DEFS 2
OEFS 2
DEFS 8
Text:26869
' Hmemt 361S3
End:28769
1900 Bytes#
CPC 36- Juillet/Août 1988
37
Norbert SYLVESTRE
ur un plateau de 64 cases, des pions
de deux types "satellite" ou "trou
noir"sont dissimulés. Votre mission, si vous
l'acceptez, est de localiser ces pions grâce
à des lancers de rayons dont la trajectoire
est modifiée par les pions sus-nommés. Pour
que cela ne soit pas trop simple, la trace -
lumineuse est cachée et le temps limité. Le
mode d'emploi est contenu dans le
programme.
lû FF, OôRhMÜE SATELIT >EA
20 • >LB
30 ■ Norbert SILVEoTFE ♦ 24 MAI 1988 >LC
40 ' >LD
K' ' Initialisation >LE
60 ' >LF
70 BOSUB 4470 ' DeFinition des Syaboles >JD
80 EVER'Y 50.3 GGSUB 2450: DI * >VP
90 ' ;lj
100 ' Menu de début du jeu >RB
110 ' >RC
120 INK 0,1:INK 1,26:BORDER 1:MODE 2 >CB
130 LOCATE 15,1:FRINT"* ♦» JEU SATELIT >DC
« « ♦"
140 LOCATE 15,8:PRINT"Voulez vous :" >KT
150 LOCATE 15,12:PRINT"- Lister les Reqles >MF
R"
160 LOCATE 15,15:PRINT‘'- Conmencer le Jeu >LU
J"
170 LOCATE 15,18:PRINT"- Sortir du Programme >PL
S"
180 LOCATE 20,23:PRINT "Votre choix : M
190 R$=INKEY$:IF R$="" THEN 190 >XP
200 IF R$<>"J" AND R$<>"j" AND R$<>"R" AND RJO’r" AND >CL
R*<>"S" AND Rt<>”s” THEN 190
210 PRINT R$:F0R 1=1 TO 1000:NEXT I >BQ
220 IF R$="S'’ OR R$="s" THEN CLS:END >CU
230 IF R$="R” OR' R$="r" THEN 3740 >YV
240 CLS:DIM ENTREE(15,1) >TU
250 LOCATE 10,10:PRINT”NivBau de diFFiculte (1 a 4) : >LE
«.
260 R$=INKEYi:IF R$="" THEN 260 >XK
270 IF VALIRSXl OR VAL(R*)>4 THEN 260 >DR
280 PRINT R$:F0R 1=1 TO 1000:NEXT I >BY
290 NIV=VAL(R$) >HF
300 ' >RD
310 ' DeFinition de 1 écran >RE
320 ■ >RF
330 MODE 0;BORDER 0:JEU=0 >UK
340 FOR 1=0 TO 15:INK 1,0:NEXT I >YV
38
CPC n°36- Juillet/Août 1988
/,
360 ' Dessin de l'Ecran
370 ■ '
380 TEMPS=0:TA60FF;FRINT CHR$(23i+CHR$(0)::TAG
390 FIOT 700.700,13:MOVE 415,396:DRAWR 229,0
/
4Ci0 PLOT 700.700,12;MOVE 415.396:DRAWR 0,-45;DRAWR 229, >ZF
0
\
410 PLOT 7iX),700,5
420 FOR 1=0 TO 160
430 MOVE 66,360-2*1
440 DRAWF; 336.0
450 ÆXT î
460 PLOT 700,700,7
470 FOR 1=0 TO 8
430 MOVE 68+42*1,40
490 DRAWR 0,320
500 MOVE 66,42+40*1
510 DRAWR 336,0
520 NEXT I
530 PLOT 700,700,2
540 FOR 1=0 TO 8
550 MOVE 64+42*1,40
560 DRAWR 0.320
570 MOVE 66,40+40*1
580 DRAWR 336,0
590 ÆXT I
600 TAGOFFiPRINT CHR$(23)+CHR$(1);:TAG
610 FOR î=0 TO 7
890 MOVE 474.300:PRINT"TEMF5": >lî
PX) PLOT 700,700.12:MOVE 474.3Iv:DRAWF. 160,0:DRAWR O.-i '^AV
30
910 PLOT 700,700,13:MOVE 4T4.310:DRAWF 0.-130:DRAWR 160 .;AW
.0
920 PLOT ■'00.900.i3:tiCVE 484.260:DRAWR 140.0:.ORAWR 0.-7 :il
620
FOR J=0 TO 7
■/YJ
630
PLOT 700,7iXi,7
>MH
640
MOVE 72+42*i.60+40*j
>TY
650
PRINT CHR$(255):
>PZ
660
PLOT 700,700,2
>MF
670
MOVE 72+42*1,68+40*1
/TB
: 680
PRINT Cm$(253);
>PA
( 690
NEXT J
>QK
: 700 NEXT I
>NF
•' 710 TAG0FF:PRINT CHR$(23)+CHR$(0);;TAG
>GC
720 FOR 1=0 TO 6
>WA
730
MOVE 2,88+40*1
:>MD
740
PRINT CHRt(2û3)+CHR»(207):
/YN
750
MOVE 408,88+40*1
>NL
760
PRINT CHR«(203)+CHRf(207);
>YQ
770
MOVE 94+42*1,38
>NJ
780
PRINT CHRI(201);
>PV
790
MOVE 94+42*1,20
>NB
800
PRINT CHR$(205);
>PR
810
MOVE 94+42*1,398
>Na
820
PRINT CHR$(201);
■/PP
830
MOVE 94+42*1,378
>NQ
840
PRINT (>IR«(205);
>PW
850 NEXT I
/PB
930 PLOT 700,70)0,12:MOVE 434.260:DRAWR 0.-70:DF.AWF, 140, .;ZZ
0
940 PLOT 700.900,6 'LT
950 FOR 1=0 TO 25 ■DB
960 MOVE 495.250-2*1 NF
970 DRAWR 120,0 ZK
980 NEXT I F*'
990 PLOT 700,700,2:MOVE 494.14C':?RINT"TE£T": >NH
iOiOO PLOT 700,700,12:MOVE 4”4, lôO:DRAWR i50,0:DFHl>)R 0.- 'BO
I*?**!
1010 PLOT 700,700.13:MOVE 474.160:DRAWR 0,-130:DRAWR la -BR
0.0
10)20 PLOT 700'.TOO. 13:MOVE 484. IjO:DRhWF 140,0;DF;AWF. 0.- l-BF
110
1030 MOVE ùü.366:DRAWF. O.34;M0VE 0.34:DR.A'WF: üû.O >GZ
1040 PLOT 700,700,12:myE 434, i50:DRAWR '0.-110:DRAWR 14 BF
0,0
l)j50 MOVE Û.36 o:DRAWR o6.0:N0yE 66,0:DRAWR 0.34 ,PD
1060 TAGOFF:PF:INT CHP$I23;+CHR$(D;;TAG 7HL
1070 IF NIV>1 THEN NIV1=3 ELSE NÎV1=NIV+1 : JA
1080 NIV2=NIV+1-N!V1:1=0 >0^
1090 WHILE loNIVl )MN
1100 PLOT 700,700,3:MOVE 500+1*40,110:FRINT Ctf:î(252 ;XV
i:
1110 FLOT 70C),7'-Xi, 10:M0VE 5'X'*I*40.110:PRINT CHR$!25 ..-ZX
Ir,
1120 i=I+l LA
1130 WENT)
1140 1=0
1150 WHILE I<NrV2
1160 FLOT 700,7'00,3: MOVE 500+1*40,70:PRINT CHF,ti252) /XC
860 MOVE 420,390:PRINT CHR$(208)+CHR$(209)+CI«4(212)+CH >BL
R$ (213) +CHR$ (216) +(HI$ (217) +CHR$ (212) ?
870 MOVE 420,374;PRINT CHR$(210)+a(R4(211)+CHR«(214)+CH >BK
R$ (215) +CI«$ (219) +(MI$ (218) +C>IR$ (214) ;
880 MOVE 17,25;PRINT "C"; >Tr
1170 PLOT 700.7'00,10:MOVE 500+1*40, “O: PR INT CHRÎi251 >YD
):
1180 I=I*l >I-S
1190 WEND >JF
1200 PLOT 700,700,10:!10VE 580,7Ô:PRINT CHR$(252); /RB
1210 PLOT 700,700,6:MOVE 580.70:PRINT CHR$(251); >QM
1220 PLOT 700,700,7 >MP
1230 MOVE 504,241:PRINT CHR$(220);:MOVE 504,225:PRINT C >KB
HR$(221);
1240 MOVE 544,241;PRINT CHR$(220);:MOVE 544,225:FRINT C ;>KL
)«9$(221);
1250 MOVE 584,241:PRINT CHR$(220);:MOVE 584,225:PRINT C >KW
HR$(221)-,
1260 X=425;Y=30:PL0T 700,700,3:MOVE X,Y;PRINT CHR$(250) >BH
1270 INK 0,2:ir#; 1,6:INK 2,24;M 3,26
1280 INK. 4,18; INK 5,15: INK 6,0: INK 7,4
1290 INK 8,7:IDK 9,20;INK 10,13;INK 11,17
>DR
■>DC
>FZ
CPC n° 36- Juillet/Août 1988
39
1770 PLOT 700.700,3:M0VE X’/ûPF.INT CHR$(250); /NX
1780 RETURN >Fk
1790 ' ,YK
1800 Entrée Gauche ou Droite ; YB
1810 ■ iYC
1820 P0SY=12ei-iNT( rï'-108)/40)*4û ZX
1830 GOSUB 4380 >XK
1840 DIrPLOT 700,7C'0.3:M0VE X.?:PF;INT CHR$(250 j: XRD
1850 PLOT 700,700,COULEUR zUZ
1860 TAGOFF;PRINT CHR$(23)+CHRt(0 ;'::ThG ..HU
1870 flOVE POSX,POSV:PRINT CHRÏCCHAR); /HB
1880 TAGOFF:PRINT CHR$(23)+Clf;:$(l);:TA6 ;HX
1890 PLOT 700,700,3 >MZ
1900 MO'Æ X,y:PRINT Cm$(250); /YY
1910 EI:RY=INT((Y-l08)/40)+2:IF F0SX=34 THEN RX=0 ELSE /DU
RX=8
1920 JEU=JEU+i:ENTREE(JEU,0)=FX:ENTREE(JEü.l)=F;Y : i»iZ
1930 GOSUB 2380:RETURN >rf
1940 ' ).YG
1950 ' Position des satellites .-YH
1960» ■ yyj
1970 FOR 1=0 TO 1 /CE
1980 FOR J=0 TO 10 >LW
1990 RANDOMIZE TIME /QX
2000 PROSAT(I,J)=RNDtTIME)*l0O MOD 8 >FC
2010 NEXT J ;^WE
2020 NEXT I ,>y|c:
2030 1=1:J=1:SAT(0,0)=FROSAT(0,0):SAT(1,0 )=PROShT( 1,0) >AP
2040 FOR K=0 TO J-i >LZ
2050 IF PR0SAT(0,I)=SAT(0,K) AND PROSATd,I)=SAT(1.K >KZ
) THEN 2090
2060 NEXT K /VF
2070 SAT(0,J)=PROSAT(0,I):SAT(1,J)=PROSAT(1,1) )RK
2080 J=J+1:IF J=NIV+2 THEN 2100 >XD
2090 I=M: IF I <11 THEN 2040 >UL
2100 RETURN >EG
2110 ' >XG
2120 ' Visualisation des satellites ;XH
2130 ' >XJ
2140 FOR 1=0 TO NIV YMP
2150 X3=72+42»SAT(0,I):Y3=68+40*SAT(1,I) /JA
2160 TAGOFFtPRINT CHRI(23)+Cm$(0);;TAG >JL
2170 PLOT 700,700,5:MOVE X3,Y3:PRINT CHR$(143); >RF
2180 TAGOFF:PRINT CHR$(23)+CHR»(1);;TA6 >JP
2190 PLOT 700,700,6:M0VE X3,Y3:PRINT CHRf(252); >RK
2200 PLOT 700,700,15: MOÆ X3,Y3;PR1NT CHR$ (251); >TX
2210 NEXT I )VA
2220 X3=72+42*SAT(0,1):Y3=68+40*SAT(1,1) >HT
2230 TAGOFF:PRINT CHR$(23)+CHR»(0); :TAG >HK
2240 PLOT 700,700,5:MOVE X3,Y3:PRINT CHR$(143); >0K
2250 TAGOFF:PRINT CHR$(23)+CHR$(1);:TAG >HN
2260 PLOT 700,700,15:MOVE X3,Y3:PRINT CHR$(252); >RH
2270 PLOT 700,700,3:M0VE X3,Y3;PRINT CHR*(251); >QL
2280 RETURN >FF
2290 ■ >YF
2300 ' Entrée Haute ou Basse >XH
2310 ' >XJ
1300 INK 12.1:INK 13.14: INK 14.9: IN) 15,19 /GC
1310 COULEUR=-i:GOSUB 4330 >VZ
1320 TEMF'S=10'.::‘0:FIN=0:JEU=0:B0RDER 1:G0SÜB !940;EI >NV
POSITION DES SATELLITES
i3v'V . l'K
1340 DepiaceiTient du Curseur YA
1-j 5'.’ YYg
1360 PLOT 700,700,3:MVT=0 .ly
1370 TAGOFF:PRINT CHRî(23)-*-CHF:}ii): :TA5:PLGT 700,700,3 >ZF.
1380 IF CURSJOY=0 THEN G=8:D=l:H=0:B=2:3AI5îE=4’:3CT0 1 >EÛI
410
1390 G=74:D=75:H=72:B=73:SAISIE=:’îi /CV
140(;i IF FIN=1 THEN 2720 ..QH
1410 IF INkEY(SAI5IE)=0 THEN 1600 ELSE X2=X:f2=t' ' RJ
1420 IF INKEYi68)=0 THEN TEMP5=0 /AB
1430 IF INKEV(G)=0 THEN X=X- 8 :MVT=i ';DV
1440 IF INKEY(D)=0 THEN X=X+e:MVT=l DQ
1450 IF INKEY(B)=0 THEN Y=y-3:MVT=1 VCi;
; - ■ ‘ .. ^ .'.v
1460 IF INKEY(Hi=0 THEN V-!+3:MvT=l mra .-DZ
1470 IF !fv'T=C‘ *HEN 1560 rflâ /ql
1480 DI:IF X/S THEN .;=e ' GR
1490 IF X,-60C THEN X=âOO .RF
1500 IF Y<20 THEN V'=20
1510 IF Y>399 THEN Y=3?9 /RH
1520 IF MVT =1 THEN MVT=0 ELSE 1400 ^ >AB
1530 TAGOFF:PRINT CHR$(23)«-CHR$(1);:TAG:PLOT 700,700,3 /ZF
1540 MOVE X2,V2:PRINT CHR$(250); /AF
1550 MOVE X. Y: PRINT CHRf(250) : : El >60
1560 GOTO 1400 >me
1570 ' >yf
1580 Coramande au curseur >YG
1590 ' )YH
1600 IF X<40 AND Y<35 AND INKEY(SAISIE)=0 THEN GOSUB 16 >MP
80: GOTO 1380 ' CURSEUR;/JOYSTICK
1610 IF X<65 AND y>70 AND Y<350 AND JEU<15 THEN P05X=34 >MB
:CHAR=206:GOSUB 1800:G0T0 1380 ENTREE GAUCHE
1620 IF X/400 AND X<500 AND Y>70 AND Y<350 AND JEU<15 T >DL
HEN P0SX=408:CHAR=202:GOSUB 1800:GOTO 1380 ' ENTREE DRO
ITE
1630 IF X>90 AND X<400 AND Y>360 AND JEU<15 THEN P0SY=3 >PW
78: CHAR=204:GOSUB 2300:GOTO 1380 ' ENTREE HAUTE
1640 IF X>90 AND X<400 AND Y<40 AND JEU<15 THEN P0SY=38 >LV
:CHAR=200:GOSUB 2300:GOTO 1380 ' ENTREE BASSE
1650 IF X>=65 AND X<=400 AND Y>=40 AND Y<=360 AND INKEY >06
(SAISIE)=0 THEN GOSUB 3470: IF MOC+HOC<NIV+2 THEN 1380
ELSE 2720 ' LOCALISATION D'UN SATELLITE
1660 (30T0 1380 /wr
1680 ' Curseur / Joystick >yh
1690 j.yj
1700 CURSJOY=CURSJOy XOR 1 >wj
1710 PLOT 700,700,3:MOVE X,Y:PRINT CHR$(250); >NQ
1720 TAGOFF:PRINT CHR$(7):PRINT CHR$(23)+CHRf(0);:TAG >ZC
1730 PLOT 700,700,2:MOVE 17,25 >XH
1740 IF CUR5J0Y=0 THEN Af=''C" ELSE A$=''J’' ;GN
1750 PRINT At; >75
1760 TAGOFF:PRINT CHRf (23)+CHRt(l);:TAG >HU
40
CPC n'>36- Juillet/Août 1988
I 2320 P0SX=13à+INT((X-I25)/42)*42 >ZT
2330 GOSUB 4380 ;XF
2340 DI:PLOT 700,7!)0,3:MOVE X.v:PRINT CHR$(250); >RZ
2350 PLOT 700,700,COULEUR >UV
2360 TA60FF:PRINT CHR$(23)+CHR$(ûi;:TAG >HF
2370 MQVE P0SX,PQSY:PRTN7 CHR$';CHAR); ;-HX
2380 TAGOFFrPRINT CHR$(23)+CHR$(r);:TAG >HT
2390 PLOT 700,700,3 /MV
2400 MOVE X,r:PRINT CHRt(250); ;A'U
2410 EI:RX=INT((X-125)/42)+2:IF P0SY=38 THEN RY=0 ELSE ..>DW
RY=8
2420 JEU=JEU-fl:ENTREE(JEU.O)=RX:ENTREE(JEU,l)=RY /WV
12430 GOSUB 2880:RETURN >RB
2440 ' >YC
2450 ' Décomptage du chronométré >YD
2460 ' >YE
2470 DI:TEMPS=TEMPS-1 >RC
2480 IF TEMFSCO THEN TEMPS=0 >XM
2490 TEMFS$=RIGHT$(" "+STR$(TEMPS),3) >FZ
2500 UNIT$=RIGHT$(TEMPS$,l):DIZ*=MID$(TEMP3t,2,l):CENT$ >AT
=LEFT$(TEMPS$,1)
2510 OLDUNIT=UNIT:OLDDIZ=DIZ:OLDCENT=CENT >QZ
2520 UNIT=VAL(UNIT$):DIZ=VAL(DIZI):CENT=VAL(CENT$) >ZA
2530 IF OLDCENT=ŒNT THEN 2580 >YU
2540 PLOT 700,700,6:TAG0FF:PRINT CHR$(23)tCHR$(0);:TAG >20
2550 MOVE 504,241:PRINT CHR$(143);:MOVE 504,225:PRINT C >KQ
HR$(143);
2560 PLOT 700,700,7:TAG0FF:PRINT CHR$(23)+CHR$(1);:TAG >ZV
2570 MOVE 504,241:PRINT CHR$(220+CENT*2)î:MOVE 504,225: )HN
PRINT CHRt(220+CENT*2i-l);
2580 IF OLDDIZ=DIZ THEN 2630 >WG
2590 PLOT 700,700,6:TAGOFF:FRINT CHR$(23)+CHR$(0);:TAG :ZW
2600 MOVE 544,24l:PRINT CHR$(l43);:MOVE 544,225:PRINT C >KV
HRI(l43);
2610 PLOT 700,700,7:TAGOFF:PRINT CHR$(23)+CHR$(i);:TAG >ZQ
2620 MOVE 544,24l:PRINT CHR$(220+DI1*2);:MOVE 544,225:P >EC
RINT CHR$(220+DIZ*2+l)î
2630 IF OLDUNIT=UNIT THEN 2680 >Yü
2640 PLOT 7W,700,6:TAGOFF:PRINT C*$(23)+CHR$tO);:TAG
HR$(143);
2660 PLOT 700,700,7:TAGQFF:PRINT CHR$(23)+CHR$(l)-,:TAe
2670 MOVE 584,241:PRINT CHR$(220+UNIT*2);:MOVE 584,225:
PRINT CHR$(220+UNIT*2+1);
2680 TAGOFF:PRINT CHR$(23)+CHR$(1);:TAG
2690 IF TEMPS=0 THEN FIN=1
2700 El:RETURN
2710 '
2720 ’ Fin de la Partie
2730 '
2740 DI:GOSUB 2120:VISU=l:C0ULEUR-0
2750 MOVE X,Y:PRINT CHR$(250)i
2760 FOR RAY=1 TO JEU
2770 RX=ENTREE(RAY,0):RY=ENTREE(RAY,1)
2780 GOSUB 2940
2790 NEXT RAY
2800 DI:TAGOFF
>B2
:VISU=0:ERA5E ENTREE:G01
>GK
>UN
>RR
;-WV
-KN
>YK
àk
>ZB
>TR
>RQ
>WA
)PR
>EH
>FY
>EL
>WV
2810 IF GAIN=0 THEN LOCATE 14,25:PRINT"DE30LE":G0T0 233
0
2820 LOCATE 14,25:PRINT''GAGNE":GAIN=0
2830 FOR 1=1 TO 2000: ÆXT I
2840 LOCATE 2,25:PRINT"Appuyer sur RETURN"
2350 IF INKEY(18)=-1 THEN 2850
2860 NL0C=0: MLOC'O: GAIN=0: FIN=0
0 100
2870 '
2880 ' Chemin du Rayon
2890 '
2900 FOR K=80 TO 60 3TEF -2
2910 SOUND l,i';,2,15.,,l
2920 NEXT K
2930 TEMPS=TEMPS-50
2940 IF RX=0 THEN DX=1:DY=0:6CT0 2980
2950 IF RX=8 THEN DX=-1:DY=0:50T0 2980
2960 IF RY=0 THEN DX=0:DY=1:G0T0 2980
2970 IF RY=3 THEN DX=0:DY=-1
2980 0LDRX=RX:0LDRY=RY:RX=RX+DX:RY=RY+DY:TR0ü=0:IF VISU >ET
=1 THEN GOSUB' 3330
2990 WHILE (RXOO AND RX06 AND RYOO AND RY<>8 AND TRO >DE
UOl)
3000 RXl=RX-INT((l+DX)/2)-ABS(DY):RYI=RY-INT((l+DY)/2)
3010 RX2=RX-INT((l+DX)/2):RY2=RY-INT((l+DY)/2)-ABS(DX)
3020 FOR 1=0 TO NIV
3030 IF SAT(0,I)=RX1 AND 5AT(1,I)=RY1 THEN F5AT1=1
3040 IF 5AT(0,I)=RX2 AND 3AT(1,I)=RY2 THEN F3AT2=1
3050 NEXT I
3060 IF F5AT1=1 AND FSAT2=1 THEN FSAT1=0:F3AT2=0:GOTO 3 >CF
100
3070 IF F3AT1=1 THEN F5AT1=0;50UND 1,100,2,15,,,1:DX=1->BU
ABS(DX):DY=ABS(DY)-1
3080 IF FSAT2=1 THEN FSAT2=0;30UND 1,100,2,15,,,1:DX=AB OBX
S(DX)-1:DY=1-ABS(DY)
3090 IF ((SAT(0,NIV+li=RXl AND SAT(1,NIV+1)=RY1) OR. (SA >HK
T(0,NIV+1)=RX2 AND SAT(1,NIV+1)=RY2)) THEN GOSUB 3420:T
ROU=1:DX=0:DY=0
>BH
>BK
>MM
>UX
>UB
>VD
>ZR
3100 OLDRX=RX:OLDRY=RY:RX=RX+DX:RY=RY+DY
>PR
>KJ
3110 IF FIN=1 THEN GOSJB 3330
>WA
' TRACE DU RAYON
>zw
3120 WEND
>JA
>HE
3130 IF FIN=1 THEN RETURN
>UN
3140 IF TR0U=1 THEN TROU=0:RETUR'N
>CH
.^HW
3150 IF RXOO THEN 3180
SORTI >QY
>UX
E GAUCHE
>GB
3160 P0SX=2:P0SY=RY*4O+48:CHAR=202
>EV
>YC
3170 GOSUB 3270:RETURN
>TQ
>YD
3180 IF RX08 THEN 3210
• SORTI >QD
>YE
E DROITE
>FB
3190 P0SX=440:POSY=RY*40+4e:CHAR-206
>GE
>YC
3200 GOSUB 3270:RETURN
>TJ
>PP
3210 IF RYOO THEN 3240
' SORTI >QT
>LV
E BASSE
>CA
3220 P0SX=RX*42+52:P0SY=20:CHAR=204
>FZ
>RB
3230 GOSUB 3270:RETI^ÎN
>TM
>CA
3240 IF RY08 THEN STOP
■ SORTI ;rg
CPC n’" 36- Juillet/Août 1988
41
E HAUTE
3250
3260
3270
3280
G
3290
R)î
3300
MOVE
3310
3320
P0SX=RX*42+52:P0SY=398:CHAR=200
GOSUB 3270;RETURN
DhPLOT 700,700,3:MOVE X,Y:PRINT CHR$(250);
SOJND 1,150,2,15: TAGOFF;PRINT CHR$(23)+CHR«(0); ;TA
PLOT 700,700,COULEUR:MOVE POSX,POSY:PRINT CHR$(CHA
TAGOFF:PRINT CHR$(23)+CHR${1);;TAG:PL0T 700,700,3:
X,Y:PRINT CHR$(250);
EI:RETURN
Visualisation du Rayon
TAGOFF:PRINT CHRI(23)+CHR$(0); :TAG
NEWX=.(RX-1)*42+110
0LDX=(0LDRX-1)*42+110
0LDY=(0LDRY-1)*40+82
NEWY=(RY-i)*40+82
PLOT 700,700,RAY:DI:MOVE OLDX,OLDY:DRAW NEWX,NE
RETURN
FOR K=60 TO 80 STEF' 6
SOUND l.I,l,15,,,l
NEXT K
RETURN _
Localisation des Satellites
3480
3490 LOCX=INT((X-65)/42):LOCY=INT((Y-40)/40)
3500 FOR 1=0 TO NIV
3510 IF SAT(0,I)=L0CX AND SATd,I)=LOCY THEN FLAG=1
:NLa:=NLOC+l
3520 NEXT I
3530 IF SAT(0,NIV+1)=L0CX AND SAT{1,NIV+1)=L0CY THEN FL
AG=2:ML0C=1
3540 IF FLAG=0 THEN TEMPS=TEMPS-50:RETURN
3550 X3=72+42*L0CX:Y3=68+40*L0CY
3560 SOUND 1,200,2,15:DI:PLOT 700,700,3:MOVE X,Y:PRINT
CHR$(250);
3570 TAGOFF:PRINT CHR$(23)+CHR$(0);:TAG
3580 PLOT 700,700,5:MOVE X3,Y3:PRINT CHR$(143);
3590 TAGOFF:PRINT CHR$(23)+CHR$(1);:TAG
3600 IF FLAG=2 THEN ENCRE1=15;ENCRE2=3 ELSE ENCRE1=6:EN
CRE2=15
3610 PLOT 700,700,ENCRE1:M0VE X3,Y3:PRINT CHR$(252);
3620 PLOT 700,700,ENCRE2:MOVE X3,Y3:PRINT CHR$(251);
3630 PLOT 700,700,3:MOVE X,Y:PRINT CHR$(250)i
3640 TAGOFF:PRINT CHR$(23)+CHR$(0);:TAG:PL0T 700,700,0
3650 IF FLAG=1 THEN 3670
3660 MOVE 580,70:PRINT CHR$(143)j:GOTO 3690
3670 J=INT((NL0C-1)/3):I=NL0C-J*3-1
3680 MOVE 500+1*40,110-40*3:PRINT CHR$(143)î
3690 TAGOFF:PRINT CHR$(23)+CHR$(1); :TAG
3700 FLA6=0:IF NL0C=NIV+1 AND MLX=1 T1€N GAIN=1:FIN=1
3710 IF FIN=0 THEN El
3720 RETURN
>GD
>Tg
>RC
>BQ
>GW
>JF
>FK
>YA
>YB
>YC
>HP
>RY
>W
>VW
>RE
>DR
>FB
>RZ
>RK
>VJ
>YG
>YH
>NN
>MC1
>NX
>VF
>PE
>LT
>AD
>LV
>HU
>QU
>HX
>JU
>XP
>XQ
>NU
>ZP
>RE
>KH
>DK
>LA
>HY
>ZA
>PG
>F
3730 '
3740 ' Réglés du Jeu
3750 '
3760 GOSUB 4290
3770 PRINT:PRINT" Le jeu se déroulé sur un plateau divi
se en 64 cases,sur lesquelles"
3780 PRINT"votre AMSTRAD préféré a dissimule des pions
(satellites ou trou noir)"
3790 PRINT" Le nombre de ces pions varie suivant le niv
eau choisi entre 3 et 6 ."
3800 PRINT"Mais dans tous les cas,il y aura sur le plat
eau un trou noir."
3810 PRINT:PRINT" Pour déterminer la position de ces pi
ons , vous disposez de 15 rayons"
3820 PRINT"de couleurs differentes.Pour lancer un rayon
il suffit de positionner*
3830 PRINT"la fléché blanche ,a l'aide des touches de d
irection ou d'un Joystick,"
3840 PRINT"sur un des triangles entourant le plateau et
d'appuyer sur (ESPACE)."
3850 PRINT'le triangle prendra la couleur du rayon ,qui
chemine a l'intersection "
3860 PRINT’des cases sur le plateau et le point de sort
ie du plateau est marque "
3870 PRINT"de la meme couleur.Comme tous les rayons lum
ineux ,ceux-ci se déplacent"
3880 PRINT"en ligne droite sauf s ils longent un satell
ite ou un trou noir ..."
3890 PRINT:PRINT" En effet ,les satellites ont la curie
use propriété de réfléchir les rayons"
3900 PRINT"a angle droit,vers la droite si le rayon Ion
ge le satellite sur sa droite"
3910 PRINT"a gauche dans l'autre cas.Par contre ,1e tro
U noir absorbe tout rayon passant"
3920 PRINT"a sa portée,d ou son nom."
3930 GOSUB 4330:GOSUB 4290
3940 PRINT:PRINT" Bien que le cheminement du rayon soi
t dissimule au joueur qui ne connait"
3950 PRINT"que les points de départ et d arrivée,les re
flexions sur les satellites ou"
3960 PRINT"!'absorption par un trou noir sont révélés a
U joueur par un signal sonore."
3970 PRINT:PRINT" Le joueur connait a chaque instant la
quantité de rayons qu'il peut "
3980 PRINT"encore emettre , ce nombre figure en haut et
a gauche de l'écran ."
3990 PRINT" De meme, la case TEST, sous le chronométré,re
présente les satellites"
4000 PRINT"ou trou noir restant a découvrir ."
4010 PRINT:PRINT" Malheureusement , le temps imparti po
ur trouver les pions est limite"
4020 PRINT"a 1000 secondes et chaque émission de rayon
réduit ce temps de 50 secondes"
4030 PRINT"La localisation des pions imposera donc d'ec
onoffliser son capital-temps."
4040 PRINT:PRINT" Pour faciliter la recherche , si un p
ion est localise ,il suffit d'amener"
>YF
>YG
>YH
>YD
>UV
>MB
>JM
>XN
/ZQ
>QP
>MH
>KH
>PH
>MG
>TU
>HM
>LC
>WQ
>DZ
>NR
>UK
:^jc
/ZZ
>ZW
>YN
>DV
>LH
>DA
>AU
>UY
>UR
XSL
4050 PRINT"la Pieche blanche sur la case considérée et /RF
d'appuyer sur < ESPACE ) pour"
4060 PRiNT"v'isuali5er le satellite ou le trou noir.En c >Vt
as d'erreur de localisation "
4070 PRINT"il vous en coûtera 50 secondes .aussi n'oubl >QE
162 pas que les retîexions "
4000 PRINT"c'euvent etre multiples sur le Plateau .Vous >Rf1
aure: qaqne quand tous les"
4090 PRIN7"satellites et le trou noir auront ete Visual /EM
ises."
4100 GOSUB 4330;G0S'JB 4290 '.UZ
4110 PRINTiPRINT" Si vous décider d arrêter le jeu ,app ■■vD
uye: sur la touche < TAB - pour"
4120 PRINT"visuali 5 er les pions et arrêter le chronomet -BM
re,"
4130 PRINTiFRINT" Four utiliser le Joystick dans le oep XS
lacement de la tleche , amener "
4140 PRINT"celle-ci dans le coin intérieur qauche de 1' /KX
écran sur la lettre \ C / ”
4150 PRINT" et appuyé: sur i ESPACE .la lettre . J / ■Vp
vous indiquera le mode wToystick."
4160 PRlNT"Dans ce mode,le bouton v FEü / rempiace la t NV
ouche i ESPACE >.Pour revenir"
4170 PRINT"âu mode clavier, il vous suffira ce refaire /Li
la manoeuvre precedente."
4180 PRINT:PRINT"A la fin de la partie.les pions non de '/LL
couverts sont visualises"
4190 FRINT"ainsi que les chemins suivis par les rayons. >VG
n
4200 FF:INT:PRINT"N0TA : En considérant les 4 niveaux de '/GB
difficulté .ainsi que les symétries"
4210 PRINT" obtenues par rotation du plateau de 90 >XF
degres ,1e jeu présente 20 81B 980"
4220 PRINT" combinaisons aifferentes.ae quoi vous /HP
occuper 2 siècles sans interruption"
4230 PRINT" en résolvant le problème en 5 minutes. >ZT
avant de retrouver deux plateaux"
4240 PRINT" identiques ...Ce qui suppose du temps . NG
libre et une bonne mémoire
4250 LOCATE !0,22:PRINT"Bonne Chance dans vocre recherc iiiF
he
4260 GOSUB 4330 >Œ
4270 FOR 1=1 TO lOOOiNEXT I ;UM
428(1 GOTO 100 ;FA
4290 MODE 2 /QB
4300 LOCATE 20.2:PF;INT"R E G L E S DU JEU" >QQ
4310 LOCATE 2Û,3:PRINT"========================" -TL
4320 RETURN >FC
4330 LOCATE 10,25:PRINT"Appuyer sur < ESPACE / pour con IBZ
tinuer ..."
4340 R$=INKEYt:IF Rî="" OR RIO" " THEN 4340
4350 RETURN
4360 '
4370 ■
4380 ' Décomptage des Rayons
4390 '
4400 DI:C0ULEUR=C0ULEUR+1;PL0T 700,700,1 '
W
4410 TAGGFFiPRINT CHRI(23.)+CHR$(0) ;:TAG
4420 MOVE 0,390:PRINT CHR$(32)+CKR$t32':
4430 MOVE 0,39C:FRÎNT RIGHTIiSTRKlS-COULEüRî .2';
4440 TAGOFF:PRINT CHRI(23;+CHR$(1): :TAG
4450 El:RETURN
44c.O
4470
4480 ' Redéfinition des Symboles
4490
4500 SYMBOL AFTER 199
4510 SYMBOL 200 ,îiO.!<0,S(0,.t;lS.Î..3C.S(7E,ï(FF,4:Ff
4520 SYMBOL 202 ,5(6,î<E,?(lE,?;3E,5i3E,ilE.LE.t;6
4530 S'/MBOL 204 ,l(FF,!(FF,S(7E,?(3C,.?(18,î(0,Sc0,i:0
4540 SYMBOL 206 ,5(CO,ŒO,?(FO,S(F8,î.:FB,&FÛ,S<EO,t(Co
4550 SYMBOL 201 ..?!0.?<0,S!0,l<18,i24,?(42,.l<81.S-FF
4560 SYMBOL 203 .8<6,t!A.?<12,&:22,5(22.?<î2.î(A,t'6
4570 S'^MBOL 205 .?(FF,1(31.3(42,S!24,.UB,S(0,J(0,Î<0
4580 SYMBOL 207 ,îiCO.?(AO,8(9O,î(8B,?(86,S(90,l-(A0.lxCO
4590 S'r'MBOL 253 ,2«18,!<24.?(2,&2,!.(2.?!2,2<0,?v0
4600 SYMBOL 255 ,î/0,.!(0,î40,S<40,«(40.MO,k24.?(ia
4610 SYMBOL 254 ,S^13.S<3C..Î(7E,1..7E,!(7E,S<7E,.?(3C,Î(18
4620 SYMBOL 208 ,5<FC,?xFC..1(80.2x80.t(B0,.?(80.?-,FC.«<FC
4630 SYMBOL 209 ,1<FC,J(FC,1(34,3(84,1(84,484,IfFC.ÎiFC
4640 SYMBOL 210 ,3(4,M,M.S(4,3(4,M,8«FC,3(FC
4650 SYMBOL 211 ,3(84,3(84,3(84,3(34,3(84,&84,3(84,.3.84
4660 SYMBOL 212 ,.^FE,3(FE,3(10,3(10,£,10,«dO.SdO.ldO
4670 SYMBOL 213 ,3(FC,£:FC.3(80,3(80,5(80,3(30,3(FO,3(FO
4680 SYMBOL 214 ,£10. S(10.£;10,£:l0,3.10,3(10,^10,3(10
4690 SYMBOL 215 ,3(B0,3(80,!(80,8(80,S(S0,3(30,c(FC.3(FC
4700 SYMBOL 216 .8(80,3(80,£80,3(80,3(80,3?B0,£BC‘,3'30
4710 SYMBOL 217 ,3x10,3..10,3<10,£10.3(10,3(10.3<i0.£10
4720 SYMBOL 219 .3(30.3(80,3(80,£80,£80.3(80,3(FC,3(FC
4730 SYMBOL 218 ,£lù,3(10,£10,£!0,£lû.£10,3.10.3;10
4740 SYMBOL 220 .£FC,£FC,3(S4.3i&4,£e4,£64.£S4.£84
4750 SYMBOL 222 ,£4,£4. £4. £4,£4, £4,£4,. £4
4760 SYMBOL 221 .£84,£84,£84.£a4,£S4,£84.£FC,£FC
4770 SYMBOL 223 ,£4,£4,£4,£4,£4.£4,£4,£4
4780 SYMBOL 228 ,£84,£84,£84,£84,£84,£84,£84,£FC
4790 SYMBOL 23^) ,3(FC,£FC,£80,£80,£B0.£80,£80,£FC
4800 SYMBOL 229 ,£FC,3v4,£4.3(4,3(4,£4,£4,£4
4810 SYMBOL 231 .£FC,£4,£4,£4,3<4,£4,£FC,£FC
4820 SYMBOL 224 ,£FC,£FC,£4,£4,£4,£4,£4,£FC
4830 SYMBOL 226 ,£FC,£FC,£4,£.4, £4,£4,£4.£FC
4840 SYMBOL 225 ,£FC,£eO,£8O,£8O,£BO,£0O,£FC,£FC
4850 SYMBOL 227 ,£FC,£4,£4,£4,Î(4,£4,&FC,£FC
4860 SYMBOL 232 .£FC,£FC,£30,£Bû,£80,£e0,£80,£FC
4870 SYMBOL 234 ,£FC,£FC,£4,£4,£4,£4,£4,£4
4880 SYMBOL 233 ,£FC,£B4,£84,£84,£84,£84,3(FC,£FC
4890 SYMBOL 235 ,£4, £4,£4,£4. £4,£4, £4,£4
4900 SYMBOL 236 ,£FC,£FC,£B4,£B4,£84,£84,£84,£FC
4910 SYMBOL 238 ,£FC,£FC,£B4,£84,£34,£e4,£34,£FC
4920 SYMBOL 237 ,£FC,£84,3(84,£84,£B4,£84,£FC,£FC
4930 SYMBOL 239 ,£FC,£4,£4,£4,!(4.£4,£FC,£FC
4940 SYMBOL 250 ,£0,3(7C,£78,£7C,£7E,£5F,£E,£4
4950 SYMBOL 251 ,£0,£0,£60,£70,£78,£7C,£3C.£1S
4960 SYMBOL 252 ,£18,£3C,£1E,£E,£6,£2,£0,£0
4970 RETURN
'■HM
3L
/VP
HR
5F
/Y5
/■(H
: YJ
) iK
;QA
'^KL
/jy
/kT
/PF
/KM
/JS
;>KU
>NL
-FA
t:z
,PE
>PD
)PY
/GV
/NA
■NY
>NX
>MV
/NW
/MA
/MF:
YNü
'MV
/■NN
:Eû
/NR
>EU
>Ny
)NE
■>FY
/HD
/HG
>JB
/NE
>JE
/NE
>GG
>PW
)EA
>PF
)PV
/PV
>JG
>KZ
>LD
/HX
>GD
CPC n" 36- Juillet/Août 1988
43
Pages 44-54 manquantes?
PROGRAMMA T lO NBH A V A N C E E
EATI ON D’IMAGES
SAISIE DE POINT
DE VUE A L’ECRAN
O PARTIE
Jean-Pierre PETIT
Jean-Pierre PETiT est directeur de recherche au CNRS. Il est l’auteur d’un logiciel de CAO de
120 K intitulé AMSTRAD 3D, assorti d’un livre du même nom. Ce programme est riche de
ficelles de programmation, liées à l’imagerie 3D. Dans cette suite d’articles Jean-Pierre PETIT
explique au lecteur toutes ces astuces, ce qui lui permettra de construire lui-même son propre
programme de CAO.
^^onnons d'abord un M0D1 minimal
permettant de créer des objets au
clavier, chaîne par chaîne, ainsi que
des blocs d’objets.
1-Créer une image (qui provoque le
chaînage sur DES).
a-Objet en mémoire
b-Saisie écran
On aura une procédure semblable
pour le dessin d’un bloc, à la différence
que le temps de calcul sera plus long.
COMMENTAIRE
Donnons maintenant le listing de DES,
avec sa saisie écran, que nous com¬
menterons.
Avant de commenter le listing DE#16,
nous allons, à travers quelques illus¬
trations, indiquer le but visé.
Opération préalable maintenant clas¬
sique pour créer l’instruction IS-
CREENCOPY, gérant les pages
écran présentes sur le second bloc
de 64 K du 6128 (absent sur un 464)
RUN”BANKMAN
puis :
^ RUN”M0D1
L’utilisateur crée maintenant un ob¬
jet ou charge en mémoire un objet
déjà créé, puis enchaîne avec :
On déplace la croix de saisie à l’aide
des touches fléchées, ce déplacement
étant démultiplié si on agit à l’aide de
<Shift> <Touche fléchée>. Validez à
l’aide de la touche <Return>. On voit
alors apparaître la figure 2.
L’utilisateur précise la cote du point
visé et valide à l’aide de <Return>.
On passe alors à la saisie des coor¬
données du point d’observation.
Il reste à définir le champ visuel. Sur
un écran couleur, ce champ apparaîtra
selon deux traits bleus. On accroît ou
on réduit ce champ avec les touches
fléchées <Haut> et <Bas>.
Après validation par un dernier
<Retum> l’AMSTRAD débute aussitôt
le dessin.
L’option 1-Représenter un objet nous
envoie dans le sous-programme
27000 qui nous offre la possibilité de
créer une image à partir d’un objet
en mémoire, d’une série d’éléments
que l’utilisateur définira ou d’une série
prédéfinie appelée bloc. Ce choix de
dessin sera mémorisé dans le re¬
gistre CD. Puis à la ligne 27180 nous
définirons le type de saisie. La saisie
écran, thème de la présente leçon,
correspondra à CSAISIE = 2 . Cette
tâche correspondra, comme on le voit
aux lignes 27330 et 27340, aux sous-
programmes 35000 et 61000. Les
lignes qui suivent correspondent à
l'exploitation des résultats. Les re¬
gistres (XG,YG,ZG) contiennent les
coordonnées du centre de gravité de
CPC n° 36- Juillet/Août 1988
55
l'objet ou de l’ensemble d’objets. XGO,
YGO, ZGO ne sont, on le voit, que
de simples intermédiaires de calcul.
Le résultat de cette saisie écran est
constitué par les coordonnées écran
du point M (où se situe; l’observateur)
et du point G où se situe le point visé.
Passons au sous-programme 35000.
En 35010 si on traite un objet unique,
la routine 44000 est là pour calculer
les coordonnées du CG et le rayon
d’encombrement, puis on rejoint la
ligne 35180.
Si on traite d’un bloc, les coordonnées
de son centre de gravité sont calcu¬
lées et le résultat est encore stocké
dans (XG, YG, ZG. R). La double bou¬
cle (35180-35240) ou (35160-35250),
selon qu’il s’agit d’un objet ou d’un
ensemble d’objets, présente l’objet à
l’écran, (XE, YE) étant les coordon¬
nées écran.
Nous revenons alors en 27340 qui
nous envoie en 61000. Il y aura quatre
appels successifs d’une routine 59000
qui réalise la saisie d’un point sur
l’écran, résultat consigné dans (XE,
YE). Le premier travail est de saisir
ainsi les coordonnées écran du point
visé, sur fond de vue en plan de l’objet.
Une procédure analogue permettra
de saisir la coordonnée écran de la
cote du point visé, qui sera consignée
dans ZGE. Des ISCREENCOPY per¬
mettent d’éviter de faire le travail de
constitution du décor deux fois de suite
pour le point visé et le point d’obser¬
vation.
En 61200, on trouvera une procédure
de saisie de l’ouverture angulaire.
Celle-ci est un peu primitive car elle
s'effectue sur la vue en plan. Cela
Ira tant que l’axe de visée sera pro¬
che de la direction horizontale, mais
il est évident qu’on aura des problè¬
mes quand on voudra réaliser des
vues plongeantes ou des contre-plon¬
gées, par exemple.
Pour bien faire les choses, il aurait
fallu définir cette ouverture angulaire
sur des plans contenant l’axe de visée,
dont un plan vertical. Mais ceci au¬
rait entraîné un travail de projection
de l’objet (et surtout du bloc) sur ces
plans qui aurait introduit un nouveau
temps de calcul. Cela ne pose pas
de difficulté a priori. Le lecteur, fin
Figure de saisie en plan à l'écran.
i^osit^ion oJb s ex* val; eux* d.a.ns vue en pian
X
Figure 3
Saisie point d'observation en plan.
56
CPC n” 36- Juillet/Août 1988
Figure do.. ■ ■ ^'3<JreS
vue en plan.
Figure 7
Image finale.
Figure 6 ^gg
programmeur, pourra faire ce travail
à titre d'exercice.
CONCLUSION
•
Ce travail est une illustration parfaite
d’un principe de CAO ; le tout à l’éCTan.
Si vous commencez à être familiarisé
avec cette chaîne de traitement
nommée AMSTRAD-3D, vous verrez
qu’après avoir découvert le confort
de la saisie de point de vue à l’écran,
vous ne voudrez plus saisir ces
données au clavier*
CPCn° 36 - Juillet/Août 1988
57
"fA r
MOD 1 # 16
1 REH «0D1#16 2 MAI 80 >N0
2 IF FD=1 THEN 230:'* >MK
3 FD=1: L = - 1:REM Initialiser L (L+1 chaines dans obj >BR
et ):'♦
4 DIM XT(49,12),YT(49,12),2T(49,12),N(49),EL$(2'?),C0(29 >PN
),GX(29),GY(29),6Z(29),RE(29),XE(12),YE(12),XEBIS(12),Y
EBIS(12),ST$(20):'*
i tw
2050 PRINT EL*(K):'* >MA
2060 NEXT K :>CG
2070 FOR TT=0 TO (E+l)*200 : NEXT TTiREM Temporisation >2A
«
2999 RETURN: '♦ :>QC
5000 REM CHARGER UN OBJET:'* >VD
5010 INPUT"Noffl de l'objet a charger"iEL$(K):EL>=EL$(K): >JE
'♦
5020 OPENIN EL$(K):’* >NB
5025 INPUTI9,C0(K),BX(K),GY(K),GZ(K),RE(K),L:REM L'obje >VH
t a (L+1) chaines *
5030 FOR 1=0 TO L : REM Pour toutes les chaines allant >EQ
de 0 a L ♦
5040 INPUT #9,N(I): REM Nombre de segments sur chaîne ♦ >YY
10 CLS:'* >UG
15 PRINT"MENU PRINCIPAL":PRINT:'♦ >CW
20 PRINT"a-Creer un objet":'* >BN
30 PRINT"b-Completer un objet”:'♦ >HX
40 PRINT“c-Stocl<er un objet":'* >EH
50 PRINT"d-Charger un objet":'* >EB
60 PRINT"e-Gestion de blocs d'objets":PRINT"F-Bestion d >JW
U catalogue":PRINT"g-Nanipuler objet ou bloc":PRINT"h-F
usions diverses":PRINT"i-Exarainer un objet":PRINT"j-Fic
hier objets standards":PRINT"k-Voir"
70 PRINT "1-Creer une image":'* >DG
80 PRINT"m-Plan trois vues":PRINT"n-":PRINT"o-":PRINT"p >NN
180 PRINT"g-Quitter“:'* >VM
192 LOCATE 30,2 : PRINT"AMSTRAD-3D" >CN
193 LOCATE 31,4 :PRINT"J.P.PETIT" >BP
195 IF EL$ O -" TÆN LOCATE 22,21:PRINT"fflijet résident >MK
LOCATE 22,23:PRINT EL$:'*
197 IF LO-1 THEN LOCATE 31,23:PRINT L+1;" ch.":'* >Q2
198 LOCATE 3,22 >YC
200 GOSUB 65000: REM Saisie caractère:'* >FP
205 IF C=ll THEN CHAIN"V0IR#16":'* >2E
210 IF C=17 THEN END:'* >NX
220 IF C = 12 OR C=13 THEN CHAIN"DESil6":'* >EH
230 ON C GOSUB 9000,9010,8000,5000,21000,22000,64000,6 >FP
4000,10000,20000: REM etc....
999 !ERA,"*.bak":CLS:G0T0 10:REM Boucle MENU* >QH
1000 REM CREER UN BLOC * >RP
1010 CLS : PRINT"CREER BLX D'OBJETS":PRINT:'* >QE
1020 INPUT"Noffl du bloc “;BL$:'* >BR
1030 IhPUT"Nombre d'elements ";E:'* >HN
1040 E=E-1: '* >QK
1050 FOR K=0 TO E:'* >LJ
1060 PRINT"Objet numéro ";K+1:'* >DM
1070 INPUT EL$(K):G0SUB 5020:REM Charger objet * >RB
1090 NEXT K :'* >CJ
1100 GOSUB 6000:REM Stockage Fichier-bloc * >LG
1999 RETURN :'* >QC
2000 REM LECTURE BLOC * >RH
2010 CLS : PRINT'LECTURE BLK":PRINT;'* >GV
2020 GOSUB 31000 >CE
2035 PRINT'Bloc ■;BL»:PRINT:'* >ZM
2040 FOR K=0 TO E:'* >LJ
5050 FOR J=0 TO N(I):REM Pour tous les points de la cha >CN
ine d'indice I *
5060 INPUT #9,XT(I,J),YT(I,J),2T<I,J):'* >GZ
5070 NEXT J:NEXT I:'* >hW
5080 CLOSEIN:'* >VE
5999 RETURN:’* >(y
6000 REM STOCKAGE BLOC * >RC
6005 PRINT"Je stocke le bloc ")BL»:'* >JW
6010 OPENOUT BL$:'* >MB
6020 PRINT #9,E:'* >GA
6030 FOR K=0 TO E:'* >LM
6040 PRINT #9,EL»(K):'* >PZ
6050 PRINT #9,C0(K):'* >NY
6060 PRINT #9,GX(K):'* >PE
6070 PRINT #9,GY(K):'* >PG
6080 PRINT #9,G2(K):'* >PJ
6090 PRINT #9,RE(K):'* >NH
6100 NEXT K:'* >CE
6110 aOSEOUT:'* >GA
6999 RETURN:'* >QG
7000 REM CHARGEMENT FICHIER BLOC * >BF
7005 PRINT"Je charge le bloc ";BL»:'* >JN
7007 ON ERROR GOTO 45000 >RE
7010 OPENIN BL»:'* >LN
7020 INPUT #9,E :'* >BF
7030 FOR K=0 TO E:'* >LN
7040 INPUT #9,EL$(K):'* >PD
7050 INPUT #9,C0(K):'* >NC
7060 INPUT i9,GX(K):'* >PJ
7070 INPUT #9,GY(K):'* >PL
7080 INPUT i9,G2(K):'* >PN
7090 INPUT #9,RE(K):‘* >PD
7100 NEXT K:'* >CF
7110 CLOSEIN:'* >VA
7999 RETURN:'* >QH
8000 REH STOCKAGE OBJET >TQ
8010 INPUT-Ncjm de l'objet a stocker";EL»:EL»(K) =EL$ >EL
8015 GOSUB 44000:REM CALCUL GX,GY,62,RE >HR
8020 OPENOUT EL»(K) >NH
8025 PRINT #9,C0(K),6X(K),GY(K),GZ(K),RE(K),L:REM L’OBJ >WR
ET A (L+1) CHAINES
8030 FOR 1=0 TO L: REM Pour toutes les chaines allant d >DY
<►
â
58
CPC n” 36- Juillet/Août 1988
e 0 a L
8040 PRINT i9,N(I):REM Nombre de segments sur chaîne >XW
8050 FOR J=0 TO N(I): REM Pour tous les points de la ch >DR
aine d'indice I
8060 PRINT #9,XT<I,J),YT(I, J),ZT(I,J) >FP
8070 NEXT J;NEXT I >MX
8080 CLOSEOUT >ZG
8999 RETURN >HJ
9000 REM CREER UN OBJET >RT
9005 L=-1;K=K+1:EL$(K)=“";EL$="" >ZP
9010 CLSiPRINT'CREER UN OBJET";PRINT >HN
9020 PRINT"a-Creer chaîne par chaîne" >PL
9030 PRINT"b-Oboet de révolution" >KY
9040 PRINT"c-Travailler sur un objet standard" >EV
9050 PRINT"d-Creer un prisme" >DY
9060 PRINT"e-Creer un cercle" >DN
9070 PRINT"F-Creer un arc de cercle" >MX
9090 GOSUB 65000; REM Saisie caractère >FQ
9100 IF 07 OR C =-51 THEN 9999 >VU
9102 IF C<0 THEN 9000 >NR
9110 ON C GOSUB 26000; REM, etc.... >AL
9999 RETURN >HK
10000 REM DETAIL D'UN OBJET >ML
10999 RETURN >PA
21000 REM GESTION DE BLOCS D'OBJETS* >WJ
21010 CLS ;PRINT"GESTION DE BLOCS D'OBJETS";PRINT;'» >YZ
21020 PRINT*a-Creer un bloc d'objets";'* >PY
21030 PRINT"b-Charger et lire un Fichier bloc" >CH
21040 PRINT"c-Degrais5er un bloc";'* >KX
21050 PRINT"d-Detruire un bloc";'* >GN
21060 PRINT"e-Copier ensemble standard";'* >UG
21070 PRINT"F-Copier un bloc et ses éléments";'* >CU
21080 PRINT"g-Detruire bloc+objets";'* >NL
21090 PRINT"h-Compacter un bloc":'* >JN
21100 PRINT"i-Fusion blocs" >BZ
21110 GOSUB 65000;'* >LZ
21130 IF 09 OR C < 0 THEN 21999 >VZ
21135 IF C=9 THEN C=8 : CHAIN"M0D2 >ZZ
21140 ON C GOSUB 1000,2000,28000,29000,27000,4000,3000, >BC
42000
21999 RETURN >PC
26000 REM CREER DES CHAINES AU CLAVIER >FB
26010 IF L=49 THEN PRINT"Trop de chaînes,désolé...":GOS >GP
UB 65020;GOTO 26999
26020 L=L+1; REM Incrementer eFFectiF de chaînes >TU
26025 CLS: PRINT"SAISIE CHAINES AU CLAVIER";PRINT >XR
26030 INPUT"Nonbre de segments "jNlD >HW
26035 IF N(L)>12 THEN PRINT "12 segments maxi !" : GOSU >ZH
B 65020;GOTO 26025
26040 FOR J=0 TO N(L): REM Boucle de saisie de coordonn >JH
ees point
4 C = 15 THEN 26025
26130 PRINT" Une autre chaîne ?":G0SUB 65020: I >XM
F C = 15 TÆN 26010 '
26999 RETURN >PH
30000 'IDENTIFICATION OBJET >CJ
30002 IF L O -1 AND EL$ ="" THEN PRINT"Objet sans n >GT
oro présent en memoire":PRINT:PRINT"On garde ?“:G0SUB 65
020;IF C = 15 THEN 30999
30010 IF EL$ O "" Tf€N PRINT"Objet résident ";EL$ >DZ
;PRINT:PRINT“On garde ?"; GOSUB 65020
30020 IF ELi O "" AND C = 15 THEN 30999 >BE
30040 GOSUB 5010 >CH
30999 RETURN >PC
31000 'IDENTIFICATION BLX >CK
31010 IF BL$ O "" THEN PRINT"Bloc résident ";BL$;PRINT >YU
:PRINT"0n garde ?":G0SUB 65020
31030 IF BL$ O AND C= 15 THEN 31999 >AK
31040 PRINT;INPUT"Nom du bloc ";BL$:G0T0 7000 >TB
31999 RETURN >PD
44000 REM CALCUL DE GX,GY,GZ et de RE * >DB
44999 œTURN: '* >XJ
45000 REM ERREUR SUR BLX >UK
45999 SOIWD 1,20:CLS:PRINT"Bloc inexistant.. ";F0R TT=0 >LZ
TO 1000:NEXT : RESUME 10
64000 REM CHAINAGE SUR M0D2 >VP
64999 CHAIN"M0D"#16 >NA
65000 REM Saisie caractère* >WT
65010 PRINT:PRINT"Votre choix :":'* >GF
65020 C$=INKEY»:IF C$="" THEN 65020:'* >BB
65030 C=AX(Ci):'* >EK
65040 IF 096 THEN C=C-96:XT0 65535: '* >DK
65050 IF C<96 THEN C=C-64;'* >TB
65535 RETURN: '* >lil
DES # 16
1 REM DES#16 4 mai 88 >MY
2 IF FD=1 THEN 230;'* >MK
5 SOIWD 1,20: CLS:PRINT"Pas d'accès direct a DES";PRINT >TM
;PRINT"Je vous renvois sur M0Dl...";RUN"modl#16":'*
10 aS: '* >UG
15 PRINT"MENU PRINCIPAL":PRINT;'* >Clil
20 PRINT"a-Creer un objet";'* >BN
30 PRINT"b-Completer un objet";'» >HX
40 PRINT"c-Stocker un objet";'* >EH
50 PRINT"d-Charger un objet":'* >EB
60 PRINT"e-Gestion de blocs d'objets":PRINi;F-Ge5tion d >JW
U 'catalogue";PRINT"g-Manipuler objet ou bloc":PRINT"h-F
26050 PRINT"Point numéro "jJ+l >DE
26060 INPUT"XT=";XT(L,J) >UK
26070 INPUT"YT="jYT(L,J) >UN
26080 INPUT"ZT="îZT(L,J) >UR
26090 NEXT J >CB
26100 PRINT" Une erreur ?";60SUB 65020;IF >TG
usions diverses";PRINT"i-Examiner un objet":PRINT"j-Fic
hier objets standards":PRINT"k-Voir"
70 PRINT "1-Creer une image":'* >DG
80 PRINT"m-Plan trois vuB5":PRINT"n-";PRINT"o-";PRINT"p >PF
-";'*
♦ 180 PRINT"q-Quitter";'* >VM
CPC Juillet/Août 1988
59
192 LOCATE 30,2 ; PRINT"AMSTRAD-3D"
193 LOCATE 31,4 :PRINT"J.P.PETIT"
195 IF EL$ <> "" THEN LOCATE 22,21;PRINT"Objet résident
■••LOCATE 22,23:PRINT EL$:'*
197 IF LO-1 THEN LOCATE 31,23:PRINT L+1;"
198 LOCATE 3,22:'*
200 G0SU6 65000: REM Saisie caractère *
205 IF C =11 THEN CHAIN"V0IR#16":'♦
210 IF C=17 THEN END:'*
220 IF C<1 OR 017 THEN 10: '*
225 IF C = 16 THEN GOSUB 17000:GOTO 10:'♦
230 ON C GOSUB 64000,64000,64000,5000,64000,64000,6300
0,63000,60000,64000,60000,27000,34000
240 !ERA,“*.BAK":'*
999 GOTO 10
3000 REM DESSIN ELEVATION POUR SAISIE Z
3005 aS:PRINT*ELEVATION"
3010 IF CD=1 THEN 3030
3020 FOR K = 0 TO E
3025 FI=1:GOSUB 5020
3030 FOR I = 0 TO L
3040 FOR J = 0 TO N(I)
3050 XE=30(H(XT(I,J)-X6)*30/R
3060 yE=200+(ZT(I,J)-ZG)*30/R
3070 IF J=0 THEN MOVE XE,YE
3080 IF J>0 THEN DRAW XE,YE,1
3090 NEXT J : NEXT I
3100 IF CD=1 THEN 3120
3110 NEXT K
3120 XE=XGE;MOVE XE,0:DRAW XE,499,2,1:«)VE 0,0,1,0
3130 YE=0
3999 RETURN
4000 REM SAISIE (VERTICALE) POINT SUR ECRAN
4020 YE=10;G0Slffi 36000
4030 CC$=INKEY$:IF CC$=*" THEN 4030
4040 CC = ASC(CCS) :GOSUB 37000 : REM EFFACER CROIX
4090 IF CC = 240 TÆN YE=YE+10
4100 IF CC = 244 THEN YE=YE+50
4110 IF CC = 241 THEN YE=YE-10
4120 IF CC = 245 THEN YE=YE-50
4130 GOSUB 36000 : REM TRACE CROIX
4140 IF CC O 13 AND CC O 32 THEN 4030
4999 RETURN
5000 REM Chargeaent objet ♦
5001 FI=1 : REM FLA6 de non trace *
5010 II»PUT"Noa de l'objet a charger";EL$(K):EL$=EL$(K):
'f
5017 ON ERROR GOTO 23000: *
5020 OPENIN EL$(K):'«
5025 INPUT#9,C0{X),GX(K),GY(K),GZ(K),RE(K),L:REM L'obje
t a (L+1) chaînes ♦
5030 FOR 1=0 TO L : REM Pour toutes les chaînes allant
de 0 a L *
5040 INPUT I9,N(I): REM Noabre de segaents sur chaîne *
>CN^
>BP
>MK
>QZ
>FG
>FY
>ZD
>NX
>TV
>DX
>UD
>MD
>UE
>HE
>HC
>NC
>ED
>NT
>EK
>MY
>XQ
>XW
>VR
>NN
>MF
>NC
>VC
>UH
>EG
>HD
>MX
>QP
>GB
>RF
>HC
>tc
>VG
>HH
>AX
>AG
>HE
>VZ
>ZM
>JE
>TF
>NB
>VH
>EQ
>YY
5050 FOR J=0 TO N(I);REM Pour tous les points de la cha >CN
ine d'indice I ♦
5060 INPUT #9,XT(I,J),YT(I,J),ZT(I,J):'* >G2
5065 IF FI=0 THEN GOSUB 15000;R£M Tracer* >HD
5070 NEXT J:NEXT I:'* >nu
5080 CLOSEIN:'* >VE
5999 RETURN:'« >gF
7000 REM CALCUL PARAMETRES VISION * >DD
7090 ex = XG - XM : CY = Y 6 - YM ; CZ = ZG - ZM:'♦ >FB
7100 DD = SQR (CX*CX + CY*CY ):'♦ >wu
7110 IF DD = 0 AND CZ > 0 THEN TE = 0 : Kl = PI / 2 : G >VV
OTO 7210:'*
7120 IF DD = 0 AND CZ < 0 THEN TE = 0 : Kl =-PI / 2 : G >WH
OTO 7210:'*
7130 Kl = ATN (CZ/DD) >nj
7140 IF ex = 0 AND CY > 0 THEN TE = PI/2 : GOTO 7210: '♦ ;>NV
7150 IF ex = 0 AND CY < 0 THEN TE =-PI/2 : GOTO 7210:'♦ >PY
7160 TE = ATN (CY/CX);'* >PQ
7170 IF ex < 0 AND CY > 0 THEN TE = PI + TE:'* >DM
7180 IF ex < 0 AND CY < 0 THEN TE = PI + TE:'* >DL
7190 IF ex < 0 AND CY = 0 TÆN TE = PI: '* >AK
7200 IF ex = 0 AND CY < 0 THEN TE = - PI/2:’♦ >DU
7210 REM * )p])
7220 REM * >FE
7230 CT = COS (TE) : ST = SIN (TE):'* >YV
7240 CK = COS (Kl) : SK = SIN (Kl):'# >YQ
7250 XU = CK*CT : YU = CK«ST : ZU=SK;'* >BC
7260 XV = - ST : YV = CT : ZV = 0:'« >VD
7270 XW = - SK*CT : YW = - SK*ST : ZW = CK:'* >DD
7999 RETURN : '♦ >Qt,;
10000 REM dessin par bloc * >UK
10005 FI=0 : REM FLAG trace * >VP
10010 CLS:PRINT"DESSIN DU BLOC”;PRINT:'# >JG
10040 FOR K = 0 TO E: '* >|1E
10050 PRINT EL$(K):'* >nl
10055 NEXT K :'* >jk
10060 FOR TT =0 TO (E+l)*500 : NEXT TT:CLS:'* >HB
10065 GOSUB 62000:REM tracer cadre ♦ >CF
10505 FOR K = 0 TO E: '*
10510 GOSUB 5020:R£M Charger et tracer * >GD
10520 NEXT K:'* >je
10999 RETURN:'* >xb
11000 REM DESSIN PAR ELEMENTS * >ZL
11010 FI=0 : 'Annuler -flag de non-trace >RE
11075 GOSUB 62000:'* >lf
11100 FOR K=0 TO E:'* >lz
11110 GOSUB 5020:REM Charger et tracer ♦ >GA
11120 NEXT K >jc
11999 RETURN :'* >xd
12000 REM Objet déjà présent en meaoire >HD
12005 IF L=-l THEN CLS:PRINT''Pas d'objet en iBeaoire, eh >TU
, farceur i":SOUND 1,50 ;FOR TT=1 TO 1000: NEXT TT : GO
TO 10
12010 GOSUB 62000:REM tracer cadre >BW
12020 FOR I = 0 TO L : FOR J = 0 TO N(I);REM POUR TOUTE >GQ
S LES CHAINES ET TOUS LES POINTS DE CES CHAIfES
12030 GOSUB 15000:REM TRACE IMAGE ECRAN >GA
60
CPC n°36- Juillet/Août 1988
' • 'f# f #- Ê Ml Mm^ MmÊ*
12040 NEXT JrNEXT I >NZ
12999 RETURN >PC
15000 REM Calcul et trace i*age ♦ >ZJ
15040 XL=XÎ(1,J)-XM;’* >PZ
15050 YL=YT(1,J)-YM:'« >PD
15060 ZL=ZT(I,J)-ZM:'* >PH
15090 XA=XL*XU+YL*YU+ZL*ZU:’* >YF
15100 YA=XL*XV+YL*YV+ZL*ZV:'♦ >YB
Î5110 ZA=XL*XW+YL*YW+ZL*ZW;'* >YG
15121 IF XA=0 AND YA=0 AND ZA=0 THEN ZA=0.001;'* >LN
15122 RO = SQR(YA*YA+ZA*ZA): ’* >iÆ|
15125 IF XA=0 THEN B=90:60TO 15127:'* >BK
15126 B=ATN(R0/XA):B=B*180/PI:'* >Z1J
15127 IF XA<0 THEN B=B+1B0:'♦ >UU
15130 IF YA=0 WID ZA=Û THEN A=90:60T0 15180:'* >KD
15140 IF ZA=0 AND YA >0 THEN A=-90:G0T0 15180:'* >LT
15150 IF ZA=0 AND YA<0 THEN A=90:G0T0 15180:'* >KE
15160 A=-ATN(YA/ZA):A=A*180/PI:'* >ZM
15170 IF ZA<0 AND YA >0 THEN A=A-180 :'* >BZ
15172 IF ZA <0 AND YA<0 THEN A=A+180:'♦ >BD
15174 IF ZA <0 AND YA =0 THEN A=180:'♦ >AG
15180 X=B*SIN(A*PI/180):Y=B*C0S(A*PI/180):'* >LF
15240 XE=313+X«200/AN:REH COORDONNEES ECRAN * >NC
15250 YE=200+Y«200/AN : >£)«
15260 IF J=0 THEN PLOT XE,YE ; '* >NU
15270 IF JOO THEN DRAW XE,YE,1,0:'* >AD
15999 RETURN:'♦ >XG
18000 REM Acquisition elenents ♦ >BB
18010 INPUT"Noi«bre d’elements ";E:E=E-1:'* >QY
18020 FOR K=0 TO E:PRINT"Ele<nent numéro ";K+1;INPUT ELi >VU
(K):NEXT K:'*
18999 RETURN:'♦ >XK
23000 'Erreur sur objet >DA
23999 CLS:PRINT"Objet inexistant...":SOUND 1,20:F0R tt= >RQ
0 TO 1000:NEXT:EL$(K)=''“:EL$="‘:;RESUME 10
27000 REM REPRESENTER UN OBJET >ZR
27005 CLS >FK
27010 PRINT-REPRESENTER UN OBJET":PRINT >LY
27020 PRINT;PRINT"a-Objet en meraoire” >NN
27030 PRINT"b-Dessin par éléments" >LM
27040 PRINT"c-Dessin par bloc":PRINT >LC
27050 GOSUB 65000 : PRINT : CD=C >XQ
27055 IF C = 1 AND L O -1 THEN 27140 >YH
27057 IF CD=3 THEN GOSUB 31000 >HF
27060 IF C=1 THEN GOSUB 30000:E=0:GOTO 27140 >KB
27070 IF C = 3 THEN GOSUB 31000:aS: PRINT"CONTENU BLX >BR
: ":PRINT: FOR K = 0 TO E : PRINT EL$(K) ; NEXT K : FO
R TT = 0 TO 1000 : NEXT H :GOTO 27140
27080 INPUT"Noiiibre d'elements (1 par defaut) ";E$ >DW
27082 IF E$=*" THEN E=0 >PX
27084 IF E$<>"" TICN E=VAL(E<)-1 >YR
27090 as : PRINT"SAISIE ELEfCNTS":PRINT >LQ
27100 FOR K = 0 TO E >LH
27110 PRINT-Element "jK +1 >XK
27120 INPUT a$(K) >MH
27130 NEXT K >BJ
27140 IF AN = 0 THEN 27160 >QN 4
27150 PRINT:PRINT"On garde les memes paramétrés de vise >MX
e ?";BOSUB 65020 : IF C = 15 THEN 27360
27160 CLS : PRINT“a-Saisie point de vue au clavier" >GN
27170 Pf^INT"b-Saisie écran":PRINT: GOSUB 65000:CSAISIE=C >HW
27180 IF CSAISIE = 2 THEN 27310 >WL
27190 PRINT:PRINT"Coordonnees observateur ;":PRINT >HK
27200 INPUT"X=";XM >NM
27210 1NPUT"Y=";YM >NQ
27220 INPUT"Z=";ZM:PRINT >VB
27230 PRINT"Coordonnées point vise :":PRINT >YN
27240 INPUT"XG=";XG >PZ
27250 INPUT"YG=";YG >PC
27260 INPUT"ZG=";ZG:PRINT >HV
27270 PRINT"Ouverture angulaire" >KG
27280 IWUT'^O degres par defaut ";AN$ >NB
27285 IF AN$="" THEN AN = 20 : GOTO 27350 >DM
27290 AN=VAL(AN$);GOTO 27350 >WL
27310 REM >GA
27320 REM SITUER DECOR >RX
27325 CLS >6E
27330 GOSUB 35000 >LZ
27340 GOSUB 61000 >LZ
27341 XG0=X6:YG0=YS:ZG0=Z6 >XF
27342 XG= XGO + (XGE - 300) * R / 30 >WF
27343 YS= YGO + (YGE - 200) * R / 30 >HJ
27344 XM= XGO + (XME - 300) ♦ R / 30 >HW
27345 YM= YGO + (YME - 200) * R / 30 >WZ
27346 ZG= Z60 + (ZGE -200) ♦ R /30 >WD
27347 ZM= ZGO + (ZME -200) * R /30 >WT
27350 CLS : GOSUB 7000 >PJ
27360 ON CD GOSUB 12000,11000,10000 >AL
27390 ÎSCREENCOPY,2,1:SOUND 1,50 ; LOCATE 1,1:PRINT"Har >CV
dcopy ?":GOSUB 65020:IF C=15 THEN ISCREENCOPY,!,2:CALL
W000:PRINT#8:PRINTi8
27998 CD=0 >LJ
27999 RETURN >PJ
28000 REM CHARGEMENT FICHIER BLX >CB
28010 INPUT"Ncxi du bloc ";BL$ >BN
28015 'ON ERROR GOTO 45000 >EB
28020 OPENIN BL$ >LE
28030 IW>UT •9,E >FG
28040 FOR K=0 TO E >LC
28050 INPUT 19,ELI(K) >PV
28060 INPUT i9,C0(K) >NU
28070 INPUT #9,GX(K) >PA
28080 INPUT 19,GY(K) >PC
28090 INPUT #9,GZ(K) >PE
28100 IH>UT I9,RE(K) >NU
28110 NEXT K >BH
28120 aOSEIN >UD
28999 RETURN >PK
30000 'OBJET EN MEMOIRE ? >CJ
30002 IF LO-1 AND ELI="" THEN PRINT"Objet sans nom pre >ZC
sent en iemoire":PRINT:PRINT"On garde ?";GOSUB 65020; I
F C=15 THEN 30999
30010 IF ELI <>*• THEN PRINT"Objet résident ";ELI;PRINT >AC
CPCn ” 36 - Juillet/Août 1988
61
:PRINT"On garde ?";GOSUB 65020
30020 IF EL$<>“" AND C=15 THEN 30999 >A6
30040 60SUB 5000 >C6
30999 RETURN >PC
31000 REH DLX EN MEHOIRE ? >UH
31010 IF BL$ <>"“ THEN PRINT «Bloc résident ■•;BL$:PRINT >NJ
"On garde ?";60SUB 65020
31030 IF BL$<>"“ AND C*15 THEN 31999
31040 PRINT:GOSUB 28000
31999 RETURN
34000 'PLAN TROIS VUES
34999 RETURN
35000 REH SITUER DECOR
35001 FI = 1 : IF CDO 0 THEN 35010
35002 CLS:PRINT"VUE EN PU«":PRINT;PRINT"a-Objet":PRINT >CA
"b-Bloc":GOSUB 65000:CD=C:IF C = 1 THEN GOSUB 30000
35003 IF C = 2 THEN GOSUB 31000 >VH
35010 IF CD = 1 THEN GOSUB 44000:XS=6X(K):YG=GY(K):ZG=G >EE
Z(K):R=RE(K):GOTO 35180
>AG
>RX
>PD
>X
>PG
>R(]
>XH
35020 XG=0:YG=0:ZS=0:R=0:PRINT"Un peu de patience...":
35030 FOR K = 0 TO E
35040 IF CD = 2 OR cd = 3 THEN FI=1 :GOSUB 5020
35050 XG=XG+GX(K)
35060 YG=YG+6Y(K)
35070 ZG=ZB+GZ(K)
35080 NEXT K
35090 XG=XG/(E+1):YG=YG/(E+1):ZG=ZB/(E+1)
35100 FOR K = 0 TO E:Fi=l:GOSUB 5020:PRINT'Je charge ":
ELJ(K)
>GQ
>LJ
>JA
>HC
>H6
>HZ
>CB
>KR
>JG
♦
35105 FOR 1=0 TO L:FOR J=0 TO N(I)
35110 RR= SUR ((XT(I,J)-XG)*( XT(I,J)-XG) + ( YT(I,J)
G)*(YT(I,J)-YS) + (ZT(I,J)-ZG)*(ZT(I,J)-ZS ) )
35120 IF RR>R THEN R = RR
35125 NEXT j:NEXT i
35130 «XT K
35140 IF CD=1 THEN R = RE(K-l)
35150 CLS :GOSUB 62000
35160 FOR K = 0 TO E :FI=1
35170 IF CD O 1 THEN GOSUB 5020
35180 FOR I = 0 TO L
35190 FOR J = 0 TO N(I)
35200 XE = 300 + ( XT(I,J)-XG ) * 30/R
35210 YE = 200 + ( YT(I,J)-YG ) * 30/R
35220 IF J=0 THEN HOVE XE,YE
35230 IF J >0 THEN DRAW XE,YE,1
35240 NEXT J : NEXT I
35245 IF CD=1 THEN 35999
35250 NEXT K
35255 LOCATE l,l;PRINT*Vue en plan.Pressez <Retum>"
35260 SOUND 1,20 : GOSUB 65020
35999 RETURN
36000 REH TRACE CROIX
36010 HOVE XE-10,YE-10
36020 DRAW XE+10,YE+10,1
36030 HOVE XE-10,YE+10
36040 DRAN XE+10,YE-10,1
36999 RETURN
>ZV
-Y >JU
>RZ
>NJ
>BH
>VR
>QE
>QX
>XL
>LH
>NX
>Z6
>2K
>VW
>XE
>NU
>QJ
>CA
>HV
>NY
>PH
>QK
>QU
>RZ
>QU
>RD
>PJ ♦
37000 REH EFFAÇAGE CROIX >TK
37010 HOVE XE-10,YE-10 >QV
37020 DRAN XE+10,YE+10,4 >rd
37030 HOVE XE-10,YE+10 >QV
37040 DRAN XE+10,YE-10,4 >rh
37999 RETURN >pk
41000 REH EFFAÇAGE LIGNE DU H«JT >ZT
41010 LXATE 1,1:PRINT" >ZB
m
41999 RETURN >pE
44000 REH Calcul de CG et de RE >NB
44010 GX=0:GY=0:GZ=0:N=0:RE=0 >YV
44020 FOR 1=0 TO L: FOR J=0 TO N(I) >ZD
44025 N=N+1 >TE
44030 GX=GX+XT(I,J) >PB
44040 GY=GY+YT<I,J) >pf:
44050 GZ=GZ+ZT(I,J) >PK
44060 NEXT J:NEXT I >ng
44070 6X(K)=6X/N >LZ
44080 GY(K)=6Y/N >lc
44090 GZ(K)=6Z/N >LF
44100 FOR 1=0 TO L:FOR J=0 TO N(I) >ZP
44110 R=SQR ((XT(I,J)-GX(K))*(XT(I,J)H3X<K))+(YT(I,J)-G >HJ
Y(K))*(YT(I,J)-GY(K))+(ZT(I,J)-GZ(K))*(ZT(I,J)-6Z(K)))
44120 IF RE<R THEN RE=R >RN
44130 NEXT J:NEXT I >ne
44140 RE(K)=RE >VB
44999 RETURN >PH
45000 REH ERREUR SUR BLX >UK
45999 SOUND l,20:CLS:PRINT"Bloc inexistant..":FOR TT=0 >LZ
TO 1000: NEXT :RESUHE 10
59000 REH SAISIE POINT SUR ECRAN >AK
59030 XE=300:YE=300:XE(0)=XE:YE(0)=YE >FA
59040 GOSUB 36000 >ld
59050 CC$=INKEY$:IF CC$="" THEN 59050 >CY
59060 CC = ASC(CCS) :GOSUB 37000 : REH EFFACER CROIX >TJ
59070 IF CC = 243 THEN XE=XE+10 >NR
59080 IF CC = 247 THEN XE=XE+50 >NB
59090 IF CC = 242 THEN XE=XE-10 >NV
59100 IF CC = 246 THEN XE=XE-50 >NV
59110 IF CC = 240 THEN YE=YE+10 >NK
59120 IF CC = 244 THEN YE=YE+50 >NV
59130 IF CC = 241 THEN YE=YE-10 >Nq
59140 IF CC = 245 THEN YE=YE-50 >NA
59150 GOSUB 36000 : REH TRACE CROIX >BK
59160 IF CC O 13 AND CC O 32 THEN 59050 >CY
59999 RETURN >qd
60000 'ROUTINES NON ENCORE CREES >DB
60010 CLS:SOUND l,50:PRINT"Routine non encore créé..."; >KX
FOR n=0 TO 200: NEXT
60999 RETURN >PF
61000 REH SAISIE POINT SUR ECRAN >AC
61005 LOCATE l,l:PRINT"Donnez position point vise,en pi >UP
an"
61010 GOSUB 59000:GOSUB 41000 >HX
61125 XGE=XE;YGE=YE;îSCREENCOPY,2,1 >GU
61135 ye=200;GOSUB 3000;GOSUB 41000;LOCATE 1,1:PRINT"In >B6
62
CPC n" 36- Juillet/Août 1988
i
21 RUE J. DUMAS
24660 CHAMIEKS
diquez cote point vise^GOSUB 4000;60SLIB 41000; HOVE XGE
,0;I>RAH XGE,399,0: !SCREENC0PY,3,1:ZGE=YE
61136 îSCREENCOPY,1,2:L0CATE l,l;PRINT"Position observa >YE
teur dans vue en plan"
61140 XE=300;YE=300:e0SUB 59000:XME=XE;YME=YE >QT
61160 MOVE XGE,YGE ; DRAW XNE,Y«,1 ; ÎSCREENCOPY,2,1 >YA
61170 ÎSCREENCOPY,1,3;MOVE XME,0;DRAW XME,499,2;L0CATE >XA
l,l;PRINT"Cote observateur"
61180 GOSUB 4000:ZME=YE;MOVE XGE,YGE;DRAW XHE,ZHE,1:M0V >JX
E XME,0;DRAW XME,399,0;ÎSCREENCOPY,3,1
61190 ÎSCREENCOPY,1,2 >RL
61200 MGX = XGE-XfC ; M6Y = YGE - YME;MGZ=XBE-XME:AN=20 >YA
61210 DX=MGX * COS (AN*PI/180) - MGY * SIN (AN*PI/180) >IJW
61220 DY=MGX ♦ SIN(AN*PI/180) + MGY«C0S(AN*PI/180) >TD
61230 MOVE XHE,YME >NH
61240 DRAW XME+10*DX,YME+10#DY,2,1 >CL
61250 DX=MSX*C0S(AN*PI/180)+M6Y*SIN(AN*PI/1B0); >TG
61260 DY=-MGXfSIN(AN*PI/180)+MGY»C0S(AN*PI/180) >TV
61270 MOVE XME,YHE >NH
61280 DRAW XME+10*DX,YME+10*DY,2,1 >CQ
61290 GOSUB 410O0:L0CATE 1,1 ;PRINT"Chaep visuer;GOSUB >AX
65020;C=ASC(C$)
61300 IF C013 AND C032 AND C0241 AND C 0240 THEN 6 >WX
1290
61310 IF C=13 OR C=32 THEN 61400 >HH
61320 MOVE XME,YHE >NH
61330 DRAW XME+10*DX,YHE+10*DY,2,1 >a
61340 DX=HGX * COS (AN*PI/180) - MGY ♦ SIN (AN*PI/180) >UA
61350 DY=MGX * SIN(AN*PI/180) + NGY*C0S(AN*PI/180) >TH
61360 MOVE XME,YME >NH
61370 DRAW XME+10*DX,YME+10«DY,2,1 >CQ
61380 IF C=240 THEN AN=AN+5:G0T0 61210 >EE
61390 IF C=241 THEN AN=AN-5;B0T0 61210 >EJ
61400 SOUND 1,20 >DD
61999 RETURN >PG
62000 REM CADRE * >HA
62010 CLS: '♦ >1^
62015 BORDER 14 :'* >F6
62020 PLOT 0,0;'* >VA
62030 DRAW 639,0,3 >111
62040 DRAW 639,399,3;'* >NA
62050 DRAW 0,399,3;'* >MR
62060 DRAW 0,0,3;'* >GF
62999 RETURN;'* >XJ
63000 REM CHAINAGE SUR H0D2 >VN
63999 CLS:aWIN"H0D2#16 >TJ
64000 REM PASSAGE SUR HODl * >VP
64999 CLS:CHAIN"H0D1I16"; '* >UD
65000 REM Saisie caractère * >NV
65010 PRINT:PRINT"Votre choix ;" ;'* >GG
65020 C$=INKEYI;IF C$="" THEN 65020;'* >BB
65030 C=ASC(Cf):'* >EK
65040 IF 096 THEN C=C-96;G0T0 65535; '* >DK
65050 IF C<96 THEN C=C-64;'* >TB
65535 RETURN: '* >111 ^
Vous n* pouvez tester un
Montage électronique que
lorsque la dernière sou¬
dure est effectuée.En
^ ••iet^z
toutes les chances de
votre coté dès le départ
en détectant les pannes
avant qu'elles ne se
produisent.TEST calcule.
et tout coMse un analyseur logique 11 reproduit les
signaux Issus d'un circuit électronique composé de
circuits intégrés TTL LS.
SI les jeux de massacre ne vous amusent
plus,que vous pensez pouvoir concilier ré-
, fl«*ion et action et qu'en plus vous avez de la
chance,alors vous pouvez relever le défi que vous
ance S PSS devenant patron d'une entreprise.il
voue faudra tout fairet maîtriser les frais,gérer
les stocks,faire face è tous les aléas de la vie
d'une société et surtout VENDRE.
Etre patron,si c'était facile ça se saurait ...
Serez vous à la hauteur ??
GRyH-SET est un logiciel de DAO
spéclalMent adapté au dessin de
schémas,plans,circuits Imprimés
(échelle 1 exacte) et tout des¬
sin technique en général.11 dis¬
pose d'une feuille de travail
jusqu'à S écrans résidents,d'une
bibliothèque de symboles redéfl-
nissables et de fonctions gra¬
phiques ou de saisie de zone.
!■'Impression des dessins obtenus
est entièrement paramétrable.
Ecrit en langage machine,11 est
entièrement résident.
Cl ASSISTANT est un lo¬
giciel de dessin de cir¬
cuits imprimés : taille
640.540mm soit plus de
50 écrans tous résidents
«■ortie sur imprimante,
2 échelles,bibliothèque
redéflnlssable,simple ou
double face (travail en
4 couleurs),2 versions.
DEBÜCCER le complément indispensable au programmeur
langage machine.Entre autre un désassembleur,un
éditeur,une trace,un relogeur,des points d'arrêt.
DIBCKHBI.P est un SMniteur de disquette qui permet
par exemple de récupérer un programme effacé,répa¬
rer,modifier un catalogue,lire ou rectifier,octet
par octet,le contenu d'une disquette.
*y* ***** 9 **tion de fichier avec recherche
■vlticritères,sortie de fiche sur imprimante,...11
est foomi avec 4 masques prêts à 1 ' emploi.
NO«__ PRENOM
ADRESSE_
Veuillez me faire parvenir t
□une docuzwntatlon (joindre 3f70 en timbre)
□DEBOGGER
6128/664
295
P
□GRAPB-SET
6128 uniquement
375
P
□DISCKHELP
6128/664
175
P
□CI ASSISTANT
6128 uniquement
550
P
□ci assistant *
6128 uniquement
800
P
□g.P.R.
6128 uniquement
275
P
□test 750
Tous CPC (disquette)
500
P
□test 2000
Tous CPC (disquette)
750
P
□ B08S
Tous CPC (disquette)
220
P
frais de port 20 f
CPC 36- Juillet/A oût J 988
63
FC 151 ^
VIDM
COUUUR
PC1S1R .
Christophe PAVE N
•40/644
Vous AVEZ UN PC 1512 MONOCHROME ET
UN CPC COULEUR ?
ALORS VOUS AVEZ UN PC 1512 COULEUR I
L'interface que nous vous proposons ce mois-ci va en effet
vous permettre d'utiliser votre moniteur couleur de CPC sur
un PC 1512.
Attention toutefois car cette interface n'assure pas l'alimen¬
tation de I unité centrale du PC 1512, le moniteur monoch¬
rome devra rester connecté pour assurer cette fonction.
Le moniteur CTM 640/644 fournit l'alimentation de l'interface,
de ce fait, celle-ci est réduite à sa plus simple expression.'
L auteur a utilisé ce montage durant plusieurs mois sans con¬
séquences pour le PC 1512 ni le CTM 640, mais tient à pré¬
ciser qu II décline toute responsabilité pour un dommage direct
ou indirect pouvant découler de l'utilisation d'un montage
Réalisation de l'interface
ont une fréquence très supérieure 6 10
MHz, ce qui implique que la réalisation devra être de très
bonne qualité :
composants de marque, pas d'équivalents approximatifs ;
- résistances 6 couche métallique tolérance 2 % ;
- potentiomètres sur support céramique ;
- condensateur mylar métallisé ;
- circuit imprimé en verre époxy, pas de Bakélite.
Nomenclature des composants
RI 6 R5 : 270 ohms 1/4 W (voir note 1)
R6 6 R8 : 47 kohms 1/4 W
R9 6 R11 : 56 kohms 1/4 W
RI2 6 R14 : 39 kohms 1/4 W
R15 6 R17 : 33 ohms 1/4 W
RI8. : 100 ohms 1/4 W
PI 6 P3 : 250 ohms ajustables
Cl : 10 6 22 nF 100 V
Tl 6 T3 : BC548C
Cil : SN74LS00 (IMPERATIF : pas de 7400)
Note 1 : la valeur des résistances RI 6 R5 dépend des capa¬
cités parasites du câble (nature, longueur), 270 ohms est la
valeur optimale pour un câble de 35 cm maximum. Pour 50
cm : RI 6 R5 = 220 ohms.
Connectique
1 fiche DIN 8 broches (*)
1 socle DIN 6 broches
1 socle pour alimentation (*)
( ) Voir paragraphe Brochage des connecteurs.
SCHEMA DE PRINCIPE
64
CPC n° 36- Juillet/Août 1988
Circuit imprime
, Ob'eo'f .es o
/-,Aire O ^ , --lit
AOOO
<“• ^î«w
io'ores-, c sciooo'e 200' P éc»a''ï®'.c,t\llt3. Qy\.\20^ . me 0°*'
3 , V'"®" ' -.S f rï^eodeof^ ^5350 CRV3S^ ^ ^r'^o^A^Ô
-PC 6'28 •• ^eA\eo'^;®CeroeV qA, r^e f ^^^arVe'-
-P -.rnrès o®^ -_ Prooce/^,^-nV\Of®' rotopo'® _„\\eS-'®
AC
Z
Prise mâle interface
vue côté soudures
1 ;
2 :
3 : m
À : non connecté
5 :
6 :
7 :
6 ; non connecté
3
Socle femelle interface
vue côté soudures
1 : R
2 : V
3 : B
4:5
5 : m
6 : non connecté
Alimentation
Brochage
DES
CONNECTEURS
* La pris* du PC 1512 n'est pas standard :
repousser légèrement vers le centre les broches 7 et 6.
MONTAGE
Le circuit imprimé sera monté dans un coffret métallique relié
à la masse dont les dimensions sont : 150 x 50 x 50 mm.
Le coffret métallique est impératif pour éviter les effets désa¬
gréables dus au rayonnement du moniteur.
ESSAI ET MISE AU POINT
PRINCIPE DE RACCORDEMENT
En utilisation, le moniteur CTM 640/644 est posé sur l'unité
centrale du PC 1512, le moniteur monochrome servant d'ali¬
mentation est posé à droite de l'UC.
MISE EN SERVICE
NE SOYEZ PAS TROP PRESSE ; vérifiez votre montage I
- Avant mise sous tension, tourner les trois potentiomètres en
butée vers la gauche (sens inverse des aiguilles d'une
montre) ;
- Effectuer les raccordements hors tension ;
- Baisser au minimum la luminosité du moniteur CTM ;
- Mettre sous tension le moniteur CTM puis le moniteur
monochrome. Disquette MS-DOS dans l'UC ;
- Sur le CTM : agir sur le réglage de stabilité verticale pour
stabiliser l'affichage, s'il reste illisible, corriger avec un petit
tournevis le réglage de stabilité horizontale. Ce dernier per¬
met également d'ajuster le cadrage ;
- Si vous n'obtenez pas une image lisible à l'écran, votre inter¬
face est défectueuse : COUPER IMMEDIATEMENT LES
MONITEURS.
DISPOSITION DES REGLAGES A L'ARRIERE DU CTM 640
- L'image à l'écran doit normalement être très claire, tourner
les ajustables PI à P3 d'un même angle dans le sens des
aiguilles d'une montre pour obtenir un fond noir.
NE JAMAIS ALLER EN BUTEE VERS LA DROITE SUR PI
A P3 : RISQUE DE DESTRUCTION DES TRANSISTORS Tl
A T3.
- Si les caractères à l'écran ne sant pas gris mais ont une cou¬
leur dominante, agir sur l'ajustable correspondant.
- Lancer OEM PAÎNT paur affiner les réglages.
N.B. Pour réutiliser le moniteur CTM avec le CPC, il vous sera
peut-être nécessaire de corriger le réglage de stabilité hori¬
zontale (H. HOLD).
P.-S. Cause achat carte et moniteur EGA, l'auteur vend l'in¬
terface décrite 500 F.
Pour les lecteurs non bricoleurs, l'auteur dispose du matériel
pour réaliser deux autres interfaces. S'adresser à la revue
qui transmettra.
66
CPC n°36- Juillet/Août 1988
I
L
I
T
1
R
E
y'.
• R = carré, rectangle. Choisir son
encre (même procédure que pour "D").
Appui sur "R" et cliquer une fois pour
valider départ coin haut gauche.
Cliquer une seconde fois pour tracer.
• t = cercle, ellipse. Choisir son encre
(même procédure que pour "D"). Appui
sur "C'' et cliciuer une fois pour valider
centre du cercle.
Cliquer une seconde fois pour trocer.
• P = carré plein, rectangle plein.
Choisir sa trame par appui sur la touche
"T" (type de trame afficnée sur la bande
de contrôle).
Choisir les encres de la trame grâce aux
deux curseurs situés au-dessus de la
bande des encres. Ces curseurs sont
déplacés vers la droite par appui sur la
touche "C" pour celui du haut et sur la
touche "J" pour celui du bas. Dans le cas
de la trame unie, seule l'encre sélection¬
née par le curseur du haut est choisie.
Appui sur et cliquer pour lancer.
F = fill. Choisir sa trame et ses encres
de la même manière que "P". La fonc¬
tion est inhibée si vous sélectionnez une
encre de remplissage identique à celle de
la zone de remplissage.
Appui sur "F" et cliquer pour lancer la
fonction.
• A = transfert d'une partie écran.
Choisir son mode de transfert. Ces modes
sont représentés par des symboles modi¬
fiés par appui sur la touche "Z".
JTILISATION
4
spparaît une bande de
^contrôle des commandes. Celle-
_ Jci se déplace sur l'écran en cas
le besoin. Cette zone disparaît pendant
le déroulement d'une fonction.
Le programme retourne au BASIC pour
certaines fonctions. Si vous appuyez sur
"break" par erreur, vous pouvez reve¬
nir au programme par la touche "Enter"
du pavé numérique.
Voici la liste des commandes et fonc¬
tions ; celles-ci étant actionnées ou lan¬
cées par appui sur des touches du cla¬
vier. Le déplacement du curseur est géré
par le joystick ou par les touches du pavé
numérique :
4 = gauche
6 = droite
8 = haut
2 = bas
5 = point
Le choix (J/C) est effectué par la touche
"J" (l'état est affiché sur la bande de
contrôle).
f = fonction
c = commande
• M (e) = mode d'affichage AND -
OR - XOR - FORCE, Tous les traçages
et remplissages sont assujettis au mode
d'afficnage (sauf le point).
• L = charge une page écran
• S = sauvegarde une page écran
• Exp = loupe (inaccessible au cours
d'une fonction)
• D = droite. Choisir son encre grâce
à la flèche de la bande de contrôle. Cette
flèche se déplace par appui sur les tou¬
ches " —" " —" du pavé curseur. Modi¬
fier la couleur de l'encre par appui sur
les touches "t" et "l" du pavé curseur.
Appui sur "D" et cliquer une fois pour
valider départ de la droite, cliquer une
seconde fois pour tracer la droite.
Voici un utilitaire de
dessin fonctionnant sur
464 et 6128 en mode 0
CPCn ° 36 - Juillet/Août 1988
67
O = ne force pas le fond
■^= force le fond
et prend la nouvelle image en cas de
superposition des 2 rectangles.
□ = ne force pas le fond
■ = force le fond
en cas
et ne prend pas la nouvelle image er
de superposition des 2 rectangles.
Appui sur "A" et cliquer une fois pour
valider le départ coin haut gauche.
Cliquer une seconde fois pour déplacer
le rectangle de transfert.
Cliquer une troisième fois pour effectuer
le transfert. Vous sortez de la fonction
lar appui sur la touche "DEL" (voir plus
oas). Cette fonction n'est pas rattachée
au mode d'affichage (XOR, OR, AND,
FORCE), elle peut être utilisée comme
brosse, gomme.
• B = affichage de caractère sur écran.
Ê
Choisir le caractère (affiché sur bande de
contrôle) par appui sur les touches " < "
et">".
Appui sur "B" = un rectangle apparaît
représentant les limites du caractère.
Cliq^uer pour afficher le caractère.
DEL = permet de sortir dans tous les cas
d'une fonction en route.
Q = border - 1 -
W = border + 1 /
• CLR = remplit l'écran et la mémoire
avec l'encre sélectionnée par la flèche de
la bande de contrôle (le tableau précé¬
demment effacé est perdu, donc
prudence.
• 1 = curseur moins rapide") ^
• 2 = curseur plus rapide •’
• G = vue générale
Les numéros d'encre et de couleur sélec¬
tionnés par la flèche sur la bande con¬
trôle sont affichés sur celle-ci en bas à
droite (e = encre, c = couleur).
Le programme CREART va charger un
programme CREA.BIN. Ce dernier a été
créé par le listing "DATAS". Vous
devez donc tout d'abord lancer DATAS
pour obtenir CREA.BIN. Ensuite pour
démarrer le programme, vous taperez
RUN "CREART'^.
Notes :
En ce qui concerne le lanceur BASIC
"CREART", il ne faut surtout pas modi¬
fier la ligne 10 au risque de perturber
le fonctionnement de la fonction
"Cercle".
Il est possible de récupérer des pages
écrans créées sur d'autres logiciels, si
celles-ci sont au format normal (17 K).
Il suffit de remplacer la ligne 140 par ;
140 CCS ="*chargement*";gosub
150:load "nom",&C000:call TEM 2;
return
et de supprimer la ligne 160 ou 170
selon l'orainateur.
iO GOTO 40
20 C=!(1234:F=.l<5o7S: î=?(1234:vi=î=5û78:
30 DEGtCALL TMEEtORIGIN 0,0:MGVE C-fI.F:F0R T=0 Tü 36u 3
TEP lOtDRAW C05 (T)*î+C.3ÎN(T)*W+F,J:NEX7:CALL TEHZ:RET'ü
RN
40 BORDER 1:M0DE ÛtIMK 0,0:INf: 1.26:iNK 4,24;INK 5.6;Mt
nORY î(lFFF;REIC0=5i8CC0:TEt1Z=?.!eC8D:TMEE=?i8CA5:T!1EZ=S(8C72
:L0CATE 1,10:PEN ItPRINT STRIN6$(60."■»"):L0CATE 7,1Î:FE
N 4:PRINT "CRE ART":LOCATE 4,18:PEN StFRINT "par N.VINC
ENT’':REN 1
50 KEY 139,“MODE 0:CALL REICOtCALL TMEEtGOTO 110"+CKR${
13)
60 LOAD "crea.bin"
70 CfLL ;JF46
80 A=PEEK{.î(750à)
90 ON A GOSUB 130,140,20 ■ 5 auvg,charqt,cercle
100 POKE 8i7506,4;P0KE Îy7527.0 .
110 GOTO 70
130 CC$=''*SAUVEGARDE*":GOSUB 150:CALL REICOtSAVE LÏ+".D
ES". B,îiCOOO,MOOO: SA'Æ L$+". EXT". B,Î(7E72, S<10:RETURN
140 CCt=”*CHARGEMENT*":G0SUB 150:L0AD L$+“.EXT",!<7E72:C
A'lL RE ICO; LOAD Lt+".DES",8!C000:CALL TEMZ: RETURN
150 INK 0,3:INK 1,26;CLS:M0DE 2;L0CATE 30,2:PRINT CCÎ
160 J$="*.DES":IDIR,SJ* '464
170 pour 664 "ÎDIR,"*.DE3""
180 LOCATE 10,23;INF'UT "Nom du tableau '';L$
190 IF LEN(L$)=0 OR LEN(L$)>8 THEN GOTO 1^ ELSE MODE 0
:CALL TMEE:R'ETURN 'J ^
>TF
/FB
,PW
>E6
>GF
>QU
>VE
;^RF
>AZ.
>'Æ
>WT
>RB
>RJ
XQT
>ÜV
il' A*301i2:'^=373i2:L=:OC';NKlLE A =F;F0R A-A TO AfiStRcAu Cî:’ -
VÂL;'’?-.”i-Cî;:5=3TKi-o533o*'54'i32767):IF A';=F THEN Püt.E A.r
20 MEXTtREAD D4;T=vAL("^."+D$.': IF ÎL b THEN FRINT :HR$f7):"trre
Lir iiqne":L:END ELSE L=L-‘C;:i>IEt'iD
30 SAVE ' créa",B, IiZOhO, MCtO
100 DATA 3E.00,32,39,75.3E,14,CD,lE.BB.C2.CB.75.3E,04.CD,0ài4
105 DATA lE,BB,C2,CD,75,3E.0B,CD.iE,BB,C2.D2,75,3E,ùE.CD.oEli:
110 DATA lE.BB.C2,D7.75.C3.DC.75,3Ei04,C3,I)9.75,3E,'08.C3.l669
115 DATA D9.75.3E.01,C3,D9,75,3E,02.32,39.75.3E.'X,CD,1E.1C5l
120 DATA BB. C8,06,10,3A,39.75,30.32.39.75,09,00,00,21,00,212/-
125 DATA 00,22,39,78,DD.21,01.25,ED,5B,0D.75,22,tE,77,2A.2699
130 DATA 0F,75.2B.2B,22,F0,77.CD,F2.77,32.3B,7e.47,3A,2E.2CC3
135 DATA 75.B3.C8,3A,36,75,FE,04.CA,20,76,3A,2F,75.B8,C6,345D
140 DATA CD.C7,77,CD.4A,76,CD,08.77,CD.3B,73,2A.39,78,7C.3C13
145 DATA B7.C2,37,76.7D.B7,CB.CD.09.BB.FE,7F,C8.CD,1A,7B,456F
150 DATA 22,F0,77,ED,53,EE.77,C3.23,76,3A,38,78,47.ED,5B,4D72
155 DATA EE,77,ED,53,C3,77,2A,F0,77.7C,FE,01,DA,63.76,7D,568D
160 DATA FE.8E,D0.23,23,CD,F2,77,B8,CA,92,76,ED,5B,C3,77.6071
165 DATA 13,13.13,13,2A,F0.77,E5,B7,21,7C,02,ED.52,CB,7C,670F
170 DATA El,C2,02,77,CD.F2, 77, B8.C2,02, 77, ED,53.C3,77.03,7091
175 DATA 56,76,7A,B7,C2,9D,76,7B,FE,04,DA,AC,76,1B,1B,1B,782D
180 DATA 1B,CD,F2,77,B8,CA,92,76,13,13,13,13,2A,F0,77,23,7F0B
185 DATA 23,CD,FC,77,3E,0O,32,C5,77,ED,5B,C3.77,2A,F0,77,872A
190 DATA E5,B7,21,7C,02,ED,52,CB,7C,E1,C2,Ô2,77,E5,CD,E0,9099
195 DATA 76,E1,13,13,13,13,CD,F2,77,68,02,02,77,03,00.76,9B5E
200 DATA 2A,F0,77,23,23,CD,F2,77,B3,CA,F2,76.3E,01.32.C5,A08B
205 DATA 77,C9,3A,C5,77,B7,CA,FC,76,CD,FC,77,3E,00.32,C5.A9A9
210 DATA 77,C9,3E,01,32,C5,77.C9,3A,38,78,47,ED,5B,EE.77,B13D
215 DATA ED,53,C3,77,2A,FO,77,7D,B7,20,03,7C,E7,C8,2B,2B,B^ô
^ 220 DATA CD,F2,77,B8,CA,4D,77,£D,5B,C3,77,13,13.13,13,2A,C064
68
CPC n°36- Juillet/Août 1988
225 DATA F0,77,E5,B7,21,7C,02,ED,52,CB,7C,E1,C2,BD,77,CD,CA30
230 DATA F2.77,B8,C2,BD,77,ED,53,C3,77,C3,14,77,7A,B7.C2,D402
235 DATA 58,77,7B,FE,02,DA,67,77, IB,IB,IB, 1B,CD,F2,77,B8,DB5E
240 DATA CA,4D,77,13,13,13,13.2A,F0,77,2B,2B,CD,FC,77,:æ,E19D
245 DATA 00,32,C6,77,ED,5B,C3,77,2A,F0,77,E5,B7,21,7C,02,E95A
250 DATA ED,52,CB,7C,E1,C2.BD,77,E5,CD,9B,77,E1,13,13,13,F295
255 DATA 13,CD,F2,77,B8,C2,BD,77,C3,7B,77,2A,F0,77,2B.2B,FB28
260 DATA CD,F2,77,B8,CA,AD,77,3E,01,32.C6,77,C9,3A.C6.77,0.3F2
265 DATA B7,CA,B7,77,CD,FC.77,3E,00,32,C6,77,C9,3E,01,32,0BC8
270 DATA C6,77.C9,00,00,00,0O,ED,5B,0D,75,3A,38,78,47,7A,1143
275 DATA B7,C2,DA,77,7B,FE,04,DA,E9,77, IB,IB,IB, 1B,CD,F2,19EF
280 DATA 77,B8,CA,CF,77,13.13,13,13,ED,53,EE,77,C9,00,00,20E8
285 DATA Oô,00,C5,D5,E5,CD,FO,BB,El,Dl,Cl,C9,DD,75,00,DD,2B4A
290 DATA 23, DD, 74, 00.DD, 23, DD, 73, 00,DD, 23, DD, 72, 00,DD, 23.325D
295 DATA E5<2A,59,78,23,22,39,78,El,C9,ÛD,2B,DD,56,ü0,DD,39D5
300 DATA 2B,DD,5E,00,DD,2B,DD,66,00,DD,2B,DD,6E,00,E5,2A,40E8
305 DATA 39,78,2B,22,39,78,E1,C9,00,00,00,ED,5B,EE,77,2A,4718
310 DATA F0,77,CD,76,78,CD,66,78,E5,B7,21,7C,02,ED,52,CB,502A
315 DATA 7C,E1,C0,13,13,13,13,CD,F2,77,B8,C0,CD,76,78,CD,58C9
320 DATA 66,78,C3,48,7a,C9.C5,D5,E5,CD,EA,BB,El,Dl,Cl,C9,6420
325 DATA 00,00,00,00,00, 00,3A,36,75,FE,03,CA,A3,78,FE,02,68EB
330 DATA CA,96,78,FE,01,28,OA,FE.04,CO,3A,2E.75,CD,DE,BB,70F9
335 DATA C9,E5,D5,C3,B9,78,E5,D5,CB,3D,7D,CB,47,C2,C2,78,7BBD
340 DATA C3,C8,78,E5,CB,3D,7D,CB,47,D5,C2,B9,78,CB,3B,CB.85D5
345 DATA 3B,7B,CB,47,20,0C,C3,C8,78,CB,3B,CB,3B,7B,CB,47,8D65
350 DATA 20,06,3A,2E,75,C3,CB,78,3A,2F,75,CD,DE,EB,D1,E1,9564
355 DATA C9,00,3A,11,75,B7,C2,06,79,3E,01,32, 11, 75,32,38,9A46
360 DATA 75,2A,03,75,ll,Al,08,19,22,15,75,2A,03,75,li,01,9D90
365 DATA 10,19,22,30,75,11,00,18,19,22,32,75,2A,Û3,75, 11, A03E
370 DATA 32,08,19,22,34,75,CD,41,7A.CD,80,7A,CD,BF,7A,CD,A77E
375 DATA 30,7C,CD,1C,7D,CD,4F,7D,CD,8A,7D,3A,12,75,FE,01,AEBD
380 DATA CA,56,79,FE,02,CA,BO,79,FE,03,CA,AB,79,FE,04,CA,B7D4
385 DATA F7,79,FE,06,CA,47,7A,FE,07,CA,86,7A,FE,08,CA,F2,C164
390 DATA 7B,FE,09,CA,09,7D,FE,OA,CA,F6,7C,FE,OB,CA,39.7D,1:A03
395 DATA FE,0C,CA,64,7D,C9,3E,05,32,12,75,21,72,7E,E5,3A,D0AD
400 DATA 14,75,F5,CD,35,BC.79,B7,20,07.06,1A,ÛE.1A,C3,73,D6BE
405 DATA 79,05,0D,F1,E1,5F,16,00,19,71,CD,32,BC,C3,41,7A,DD53
410 DATA 3E,05,32,12,75,21,72,7E,E5,3A,14,75,F5,CD,35,BC,E3BB
415 DATA 79,FE,1A,20,07,OE,00,06,00,C3,9E,79,OC,04,F1,E1,E943
420 DATA 5F,16,00,19,71,CD.32,BC,C3,41,7A,3E.05,32,12,75,EE77
425 DATA 3A,14,75,B7,C2,C9,79,3E,0F,32,14,75,2A,01,75,ll,F3AE
430 DATA 0F,00,19,22,01,75,C3,E5,79,3D,32.14,75,2A,01,75,F827
435 DATA 2B,22,0I,75,2A,15,75,E5,CD,C5,7A,E1,2B,2B,2B,22,FE13
440 DATA 15,75,C3,41,7A,2A,15,75,E5,CD,C5,7A,E1,11,2D,00,04DF
445 DATA 19,22,15,75,C3,41,7A,3E,05,32,12,75,3A,14,75,FE,09DF
450 DATA OF,C2,16,7A,3E,00,32,14,75,2A,01,75,11,F1,FF,19.0EF3
455 DATA 22,01,75,C3,32,7A,3C,32,14,75,2A,01,75,23,22,01,12D7
460 DATA 75,2A,15,75,E5,CD,C5,7A,E1,23,23,23,22,15,75,03,19AA
465 DATA 41,7A,2A,15,75,E5,CD,C5,7A,E1,11,D3,FF,19,22,15,211E
470 DATA 75,CD,CC,7A,C3,3D,7B,3E,05,32,12,75,3A,2E,75,FE,27F8
475 DATA 0F,C2,5C,7A,3E,0O,32,2E,75,C3,71,7A,3C,32,2E,75,2D71
480 DATA 2A,30,75,E5,CD,08,7B,E1,23,23,23,22,30,75,03,80,3309
485 DATA 7A,2A,30,75,E5,OD,08,7B,E1, 11, D3,FF,19,22,30,75,3AEB
490 DATA OD,19,7B,03,3D,7B,3E,05,32,12,75,3A,2F,75,FE,OF,40AE
495 DATA C2,9B,7A,3E,00,32,2F,75,03,BO,7A,30,32,2F,75,2A,46C2
500 DATA 32,75,E5,0D,0E,7B,E1,23,23,23,22,32,75,03,BF,7A,4DB3
505 DATA 2A,32,75,E5,0D,0E,7B,E1,11,D3,FF,19,22,32,75,0D,5532 U
CPC n° 36- Juillet/Août 1988
510 DATA 1F,7B,03,3D,7B,DD,21,F9,7A,03,D0,7A,DD,21,EA,7A,5E27
515 DATA 2A,15,75,06,05,05,E5,06,03,DD,7E,00,77,DD,23,23,638E
520 DATA 10,F7,E1,CD,26,BO,01,10,EO,09,00,00,00,40,00,80,6BEB
525 DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,6FAB
530 DATA 00,00,00,00,00,00,00,00,2A,30,75,03,11,7B,2A,32,7225
535 DATA 75,3E,00,32,30,7B,03,27,7B,2A,30,75,03,22,7B,2A,777F
540 DATA 32,75,3E,00,32,30,7B,06,02,05,E5,06,03,3A,30,7B,70B9
545 DATA 77,23,10,F9,El,0D,26,BC,01,10,EE,C9,00,3A,05,75,8428
550 DATA 30,6F,26,12,OD,75,BB,3A,14,75,FE,OA,DA,55,7B,OD,8B4A
555 DATA 8B,7B,C3,64,7B,3E,00,06,30,CD,5A,BB,3A,14,75,06,9291
560 DATA 30,0D,5A,BB,3A,05,75,30,30,6F,26,12,0D.75,BB,3A,98AD
565 DATA 14,75,OD,35,BO,79,FE,0A,D2,8B,7B,3E,OO,C6,3O,0D,A04E
570 DATA 5A,BB,79,06,30,CD,5A,BB,03,90,7B,5F,OE,OA,OD,E1,A8B3
575 DATA 7B,06,30,0D,5A,BB,78,06,30,0D,5A,BB,3A,05,75,6F,B079
580 DATA 26,12,0D,75,BB,06,03,3A,23,75,B7,02,B4,7B.21,D5,B727
585 DATA 7B,03,0D,7B,FE,01,02,BF,7B,21,DB,7B,O3,0D,7B,FE,0125
590 DATA 02,02,0A,7B,21,DB,7B,03,0D,7B,21,DE,7B,7E,0D,5A,09CF
595 DATA BB,23,10,F9,C9,46,4F,52,58,4F,52,41.4E,44,4F,52,OFD3
600 DATA 20,AF,06,08,OB,13,17,91,30,01,81,10,F7,47,7B,17,D408
605 DATA 2F,G9,3E,05,32,12,75.3A,F1,70,3C,FE,05,20,0C,DD,DAAB
610 DATA 21,28,70,3E,01,32,F1,70,03,16,70,32,F1,70,DD,2A,E149
615 DATA F2,70,DD,23,DD,23,DD,5E,00,DD,56,01,DD,22,F2,70,E993
620 DATA ED,53,F4,70,0D,30,70,09,51,70,79,70,Al,70,09,70.F2A9
625 DATA 3A,F1,70,32,36,75,ED,5B,F4,70,2A,34,75,06,08,05,F9BB
630 DATA E5,06,05,lA,77,13,23,10,FA,E1,0D,26,60,01,10,EF,0090
635 DATA 09,00,00,00,00,00,00,80,80,80,00,00,80,80,80,0(),û465
640 DATA 00,80,80.80,00,00,80.80.80.00,00,90,BC.3C,00,OO,03E5
Vous désirez apprendre le morse ? Vous
possédez un CPC ? Alors, le numéro 64 de
Mégahertz est fait pour vous !
Remplissez le bon de commande ci-dessous
et adressez-le aux :
Editions SORACOM - La Haie de Pan
35170 BRUZ__
I-^o^oTcOMMANOe
I que de 20 F.
645 DATA 80,80,80,00,00,00,00,00,00,OC-,00,00,00,00,00,CO,0B25
650 DATA CO,CO,00,00,00,00,00,00,00,CO,CO,CO,00,00,00,00,0EE5
655 DATA 00,00,00,CO.CO,CO,00,00,00,00,00,00,00,00,»,00,1125
660 DATA 00,00,00,00,00,00,00,40,40,40,00,00,8CU80.80,00,1365
665 DATA 00,40,40,40,00,00,80,80,80,00,00,40,40,40,00,00,1665
670 DATA 80.80,80,00,00,00,00,00.00,00,00,00,00,»,00,CO. 1BA5
675 DATA C0,C0,O0,OO,CÛ.CO,CO,OO,0O,CO,C0,CO,»,»,C0,CO,2O25
680 DATA CO,00,00,CO,CO,CO,00,00,CO.CO,CO,»,00,»,»,00.2565
685 DATA 00,04,C9,7C,C9,7C,3E,05,32,12,75,3A,37,75,3D,FE,2B10
690 DATA IF,C2,IF,7D,3E,FF,C3,IF,7D,3E,05,32,12,75,3A.37,3096
695 DATA 75,3C.FE,FF,C2,1F,7D,3E,20,C3,1F,7D,3A,37,75,FE,3843
700 DATA 20,D2,26,7D,3E,23,32,37,75,3A,05,75,6F,26,OF,CD,3D3C
705 DATA 75,BB,3A,37,75,CD,5A,BB,C9,3E,05,32,12,75,3A,63,4396
710 DATA 7D,3C,FE,04,C2,49,7D,3E,00,32,63,70,32,38,75.3A,4942
715 DATA 05,75,3C,3C,6F,26,0F,CD,75,BB,3A,63,7D,C6.E6.CD,5068
720 DATA 5A,BB,C9,01,3E,05,32.12,75,3A,9B,7D,B7,C2.7D,7D,5708
725 DATA 3E,01,32,9B,7D.32,3A,75,3E,4A,C3,87,7D,3E,00,32.5C31
730 DATA 9B, 7D,32,3A,75,3E,43,32,9C,7D,3A,05,75,3C. 6F, 26,617B
735 DATA OF,CD,75, BB, 3A,9C,7D.CD,5A, BB, C9,00,43,00,00,00,67C8
740 DATA 3A,5E,7E,B7,C2,02,7E,21,E0,C6,22,03,75,21,00,67,6DC0
745 DATA 22,18,75,CD.A5,91,CD,8D,8C,3E,01,32,05,75,32,5E,73D3
750 DATA 7E,21.00,C0,22, lA, 75,21,»,CO,22,03,75.2l,00,30,77AF
755 DATA 22.1S,75,2A,i5,75,ll,20,F9,19,22,15,75,2A.30,75,7BD0
760 DATA 11, 20,F9,19,22,30,75,2A.32,75,11,20,F9,19,22,32,8042
765 DATA 75,2A,34,75,11,20,F9,19,22,34,75,CD,85,7E,CD,D2,8707
770 DATA 7a,C9,AF,32,5E,7E,21,00,C0,22,03,75,21,»,30.22,8BF3
775 DATA 18,75.CD,A5,91,CD,8D,8C,3E,17,32,05,75,21,F0,C0,933B
780 DATA 22,1A,75,2A,15,75,11,EO,06,19,22.15,75,2A,30,75,972B
785 DATA 11,E0,06,19,22.30,75.2A, 32, 75, 11. EO,06,19,22.32.9837
790 DATA 75.2A,34,75,11,£0,06,19,22,34,75.21,00,67,22,18.9F1C
795 DATA 75,21, EO, C6,22,03,75,CD,85,7E,CD,D2,78,C9,00,00,A6A2
800 DATA 00.C0,0C,CC.30,F0,3C,fC,03.C3,0F,CF,33.F3,3F,FF,AE9A
805 DATA 00,00,00,1A,02,03,18,06,01,16,06,01,10,09,0£,17,AF33
SIO DATA 07,09.00,00, 00, ED,5B,18, 75,2A,03,75,E5.06,19,C5.B3e2
815 DATA E5,01,5Û,0Û,ED,B0,E1.CD,26,BC,C1,10,F2,E1,1E,40,BK7
820 DATA 06,13,C5.£5,06,50.73,23,10,FC,El,CD,26.BC,3A,11.C282
825 DATA 7F,B7,C2,BC,7E,1E,80,3E,01,C3,CO,7E,iE,40.3E,00,C92E
830 DATA 32,11.7F,Cl,lû,DC,3A,05,75,3C,6F,26,ll,E5,CD,75,CF5A
835 DATA BB,3E,65,CD,5A.BB,E1.2C,CD,75,BB,3E,63,CD,5A,BB,D827
840 DATA 3A,05.75,6F,26,ll,CD,75,BB,3E,ôD,CD,5A,BB,CD,26,DEFE
345 DATA 7F,CD,C0,8C,2A,03,75,11,51,08,19,11,60,7E,06,10,E3C0
850 DATA C5,D5,E5.CD,12,7F,El,ll,03,0O,19,Dl,13,Cl,10,F0,EB5û
855 DATA C9,00,06,06,E5,3E,03,F5,1A,77,23,F1,3D,20,FS,E1,F21B
860 DATA CD,26,BC,10,EF,C9,11,01,08,CD,2F,7F,11,A1,00,2A,F803
865 DATA 03,75,19,06,07,E5,3E,30,36,00,23,3D,20,FA,El,CD,FD52
870 DATA 26,BC,10,F1,C9,00,3A,53,82,B7,C2,D4,7F,3E,01,32,044A
875 DATA 53,82,32,24,75,11,h6,B2,1A,FE,FF,CA,67,7F,06,FF,0BEF
880 DATA CD,39,BB,13,C3,5a,7F,21,E0,C6,22,Û3,75.21.00,67,1246
835 DATA 22,18,75,21,D0,5A,22,1C,75,21,60,7E,22,01,75,3E,16C8
890 DATA 17,32,05.75,3E, 05,32, OC, 75,21,50, CD,22,07,75, .3E, 1A9B
895 DATA 89,32,0A,75,32,1F,75,3E,80,6F,26,Û0,3E,»,22,0F,1E5D
900 DATA 75,32,09,75,32,21,75,32,23,75,32,lE,75, 6F, 22,00,2277
905 DATA 75,3£,0Û,32,13,75,32,14,75,32,2E,75,32,2F.75,32,267C
910 DATA 11,75,32,0B,75,CD,BD,8C,CD,C0,8C,CD,B5,7E,CD,D2,2F22
915 DATA 78.C3,DF,7F,CD,85,7E,3E,00,32,OB,75,CD,D2,78,CD,375F
920 DATA AD,82,3A,27,75,FE,01,20,06,3E,03,32,06,75,C9,3A,3C7A
925 DATA 13,75,FE,01,C2,05,80,3E,00,32,'l3,75,CD,A0,7D,CD.42F7 ^
930 DATA D2,7B,C3,DF,7F,CD,09,BB,FE,E0,DA.13,30,CD.54,82.4CE1
935 DATA C3,DF,7F,FE,53,CA,lD,80,FE,73,C2,36,80,3E,01,32,55i4
940 DATA 06,75.CD,A5,91,3E,00,32,0B,75,CD,AD,B2,CD,eD.3C,5C64
945 DATA 3E,02,CD,OE,BC,C9,FE,4C,CA,40,30,FE,ôC,C2,4B.80,64CF
950 DATA 3E,û2,32,06,75,3E,02,CD,0E.BC,C9,FE,47,CA,55,e0,6B40
955 DATA FE, û 7, C2,66,80, 3E,Oo. 32, UB, /5, Ll', AD, 8,;, CD, A5,91.733C
960 DATA CD,06,BB,C3,D4,7F.FE,10,C2,88,30,21,»,30,ED,5B.7B51
965 DATA 01,75,lA,77,23,7C,FE,70,20,F8,11,00,C0,21,00.30.8Û9F
970 DATA 01,Û0,40,ED,BÛ.C3,D4,7F,FE.32,C2,9D.80,3A.0C.75,385D
975 DATA FE,1E,DA,DF,7F.D6.0A,32,0C,75,C3.DF,7F,FE,31,C2.9156
96o DATA B2,80,3A, OC, 75, P’E, E6, D2, DF, 7F, C6,0A, 32, OC, 75. C3.999D
985 DATA DF,7F.FE,51,CA,BC,0O,FE,7i,C2,DO,8ô,CD,3B,BC,37,A3CC
m DATA 3F,05,OD.79,30,04,3E.lA,4F,47,CD.38,BC,C3.DF.7-,499 h
995 DATA FE, 57, CA, E-A. 80, FE. 77. C2, EE, 80, CD, 3B, BC. 04. OC. 79. B305
1000 DATA FE. 1B,20,04.3E,00,4F,47,CD,33.BC.C3.DF,7!^.FE,43,BA39
1005 DATA Ch,F8. 80,FE, ô3. C2,FD,80,3E.05.C3,59,81 . FE,44.CA,C407
1010 DATA 07,Sl,FE,64.C2.0C,ai,3E,02.C3,59.31,FE,46,CA.16,CB4i
1015 DATA ei,FE,66,C2,lB,81,3E,01,C3,59,ei.FE.41,CA,25,8!,D30F
1020 DATA FE,61.C2,2A,31.3E,04,C3,59,31.FE,42,CA,34.SI,FE,DB77
1025 DATA 62,C2,39,81.3E,07,C3,59,ei,FE,52,CA,43.ai,FE,72,E385
1030 DATA C2.48,81,3E,03,C3,59,81,FE,50,CA,52,81,FE,70,C2.EC09
1035 DATA 5F,ai,3E,00,32,24,75,3E,03,32,21,75.C3,DF.7F,FE,F2lH
1040 DATA 7B,CA,69,SI,FE,5B,C2,6E,81,3E,06,C3,C5,81,F£.7D,FBIB
1045 DATA CA,7B,81.FE,5D,C2,7D,81.3E.Û7,C3,C5.B1,FE,3E,CA,044D
1050 DATA 87.31,FE,2E,C2,BC,81,3E,09,C3,C5,SI,FE,3C,CA,96,0D3A
1055 DATA Bl,FE,2C,C2,9B,81,3E,0A,C3,C5.Bl.FE,5A.CA,A5,6l,165C
1060 DATA FE,7A,C2,AA.81,3E,0B,C3,C5,81,FE,4A,CA,&4.81,FE,2058
1065 DATA 6A,C2,B9,B1,3E,0C,C3,C5,81,FE,54,CA,C3,81,FE,74,29E3
1070 DATA C2,CB,81,3E,08,CD,9F,82,C3,DF,7F,FE,4D,CA,D5.81,33B1
1075 DATA FE.6D,C2,EC,81,3A,23,75,3C,FE.04,DA,EO,B1,3E,00,3BD4
1080 DATA 32,23,75,CD,59,BC,CD,D2,78,C3,DF,7F,FE,20,C2,DF,4577
1085 DATA 7F,3E,00,32,06,75,32,17,75,CD,AD,S2,CD,DB,8C,CD.4CA1
1090 DATA D2,78,CD,09,BB,FE,E0,DA,10,82,CD,54.82,C3,FC,81.56A9
1095 DATA FE,20,C2,FC,81,3A,21,75,FE,02,CA,DF,7F,3A,05,75,5EB2
1100 DATA FE,0A,D2,30,82,3A,'0A,75,FE,lE,D2,41,a2,C3,38,82,6625
1105 DATA 3A,0A,75,FE,A5,DA,41,82,CD,A5,8C,CD,Aû,7D,C3,4A,6F13
1110 DATA B2,CD,A5,8C,CD,85.7E,CD,D2,78,3E,00,32,0BJ5,C3,772D
1115 DATA DF,7F,00,00,FE,F4,CA,63,82,FE,FB,CA.63,B2,FE,F0,81BF
1120 DATA C2,68,82,3E,01.C3,9F,82,FE,F9,CA,77,82,FE.F5,CA,SC05
1125 DATA 77,82,FE,F1,C2,7C,82,3E,O2,C3,9F,B2,FE,FA,CA,0B,961E
1130 DATA B2,FE,F6,CA,8B,82.FE,F2,C2,90,82,3E,03,C3,9F,82,A054
1135 DATA FE,FB,CA,9D,82,FE.F7,CA,9D,82,FE,F3,C0,3E.04,32,AB39
1140 DATA 12,75,CD,D2,78,C9,OE,14,OC,04,OB,FF,OO,3A,OB,75,6096
1145 DATA B7,C2,C7,82,3E,01,32,0B,75,32,4D,86,3E,00,32,4C,B60A
1150 DATA 36,32,22,75,32,A7,86,3A,3A,75,B7,C2,D4,82,CD,0C,BD49
1155 DATA 83,C3,D7,82,CD,15,83,3A,27,75,FE,01,C8,3A,21,75,C4BA
1160 DATA B7,C8,FE,07,CA,FB,62,CD,09,BB,FE,7F,C2,FB,B2,3A,CF0C
1165 DATA 4C,86,B7,28,06,CD,94,87,CD,AE,86,CD,09,BB,FE,20,D75B
1170 DATA CA,06,83,C3,C7,82,CD,1C,87,C3,C7,82,CD,A0,75,3A,E052
1175 DATA 39,75,C3,1B,83,CD,24,BB,E6,1F,CB,27,5F,16,00,DD,E753
1180 DATA 21,30,83,DD,19,DD,5E,00,DD,56,01,D5,DD,E1,DD,E9.EFE5
1185 DATA 70,83,4B,84,A5,84,70,83,EA,84,70,e3,7û,83,EA,84,F8B5
1190 DATA 43,85,70,83,70,83,43,85,70,B3,4B,84,A5,84,70,83,FFD9
1195 DATA OF,84,3F,84,44,84,70,83,3A,34,70,83,70,B3,3A,B4,064C
1200 DATA 35,84,70,83,70,83,35,84,70,83,3F,84, 44, 84,70,83,0015
1205 DATA CD,B3,85,3A,21,75,B7,CA,B3,85,FE,02,CA,94,83,FE,1682
1210 DATA 03,CA,BF,83,FE,04,CA,D3,83,FE,05,CA,E7,83,FE,Û7,1FEF
70
CPC n° 36-Juillet/Août 1988
1215 DATA CH,FB.83,C9,3A,4C,8à,B7,CB,3E,0û.32,4D,B6,CD,Aa.2e43 ^
1220 DATA 83,CD,E3,35,CD,A8,83,C9,2A,50,86,ED,5B,4E,3è,CD,31A5
1225 DATA C0,BB,2A,0F,75,ED,5B,ÛD,75,2B,2B,CD,F6,BB,C9,3A,39àF
1230 DATA 4C,86,B7,C8,3E,ô0,32,4D,aè,CD,38,89,CD,E3,35,CD,4193
1235 DATA 3B,89,C9,3A,4C,B6,B7,CB,3E,0Ci,32,4D,36,CD,B0,88,4SF0
1240 DATA CD,E3,B5,CD,B0,88,C9,3A,4C,36,B7,C8,3E,00,32,4D,513B
1245 DATA 86,CD,1E,8C,CD,E3,85,CD,1E,8C,C9,3E,01,CD,59,BC,59CE
1250 DATA CD,6C,8A,CD,E3,85,CD,6C,3A,3E,00.CD,59,BC,C9,3A,62AC
1255 DATA 21,75,B7,CA,88,85,FE,01,CA,A8,86,FE,û2,CA,Fl,85,6C07
1260 DATA FE,03,CA,52,B6,FE,04,CA,D1,37,FE,05,CA,CE,8B,FE,75F2
1265 DATA 07,CA,A4,8A,C9,CD,43,85,18,0D,CD,EA,84,18,06,CD,7D9C
1270 DATA 4B,84,18,O3,CD,A5,34,CD,0F,84,C9,3A,0A,75,B7,CA,84DF
1275 DATA 70,83,3A,A7,86,FE,01,C2,78,84,3A,21,75,FE,05,20,8BE9
1280 DATA 06,ED.5B,eD.01.18,04,ED,5B,50,86,2A,OF,75,7C,BA,91E3
1285 DATA C2,75,84,7D,B&,D2,70,B3,CD,F9,Bù,3A,0A,75,3D,32.9AoF
1290 DATA 0A,75,2A,07,75,CD,29,BC,22,07,75,CD,E3,85.CD.70,A0F6
1295 DATA B3,'2A. 1C.75,11,B0,FF, 19,22,1C,75,3A, 1F,75,3D,32.A5FD
1300 DATA 1F.75,C3,D7,34,3A,0A,75,FE,C7,CA,70,83,CD,F9,86,AF36
1305 DATA 3A,0A,75,3C,32,0A,75,2A,07,75,CD,26,BC,22,07,75,B3CF
1310 DATA CD,E3,B5,CD.70,83,2A,1C,75,11,50,00,19,22,1C.75,B9AC
1315 DATA 3A,1F,75,3C,32,1F,75,06,00,3A,OA,75,57,3E,C8,92.BE2A
1320 DATA 4F,CB,21,CB,10,ED,43.0F,75,C9,2A,07,75,3A,Ô9.75,C41B
1325 DATA E7,CA,70,a3,3A,A7.86,FE,01,20,lE.3A.21,75,FE,05,C&0ü
1330 DATA 20,06,ED,5B,B4,01,13,04,ED,5B,4E,86,2A,0D,75,7C,D059
1335 DATA BA,C2,16,85,7D,BB,DA.70,83,3A,09,75,CB,47,C2,33,De34
1340 DATA 35,2B,22,07,75,2A,1C,75,2B,22,1C,75,3A,1E,75.3D,ÛC25
1345 DATA 32,1E,75,3A,09,75,3D,32,09.75,CD,70,83,CD,E3,85,E264
1350 DATA C3.75,35,2A,07,75,3A,09,75,FE,9F,CA,70,33,3A,09,E93C
1355 DATA 75.CB,47,CA,6&,85,23,22,07.75,2A,1C,75,23,22.1C,EE57
1360 DATA 75,3A.1E,75,3C,32,1E,75,3A,09,75,3C,32.09,75,CD,F30B
1365 DATA 70,83,CD,E3,85,06,00,3A,09,75,4F,CB,21,CB,10,CB.F9D2
1370 DATA 21,CB,10,ED,43,0D,75,C9,2A,07,75,CD.91,85,2A,1C,0013
1375 DATA 75,ED.5B.01,75,3A,09,75,CB,47,C2.A9,B5,1A.E6,AA,07AF
1380 DATA 47,7E,E6.55,B0,77,C3,B2,85.1A,E6,55,47,7E,E6,AA,107A
1385 DATA B0,77,C9,CD,C0,85,CD,DE,85,CD,C0,85,CD,DE,B5,C9,IBB"
1390 DATA 3A,09,75.CB,47,C2,CF,a5,DD,21,DD,35,C3,D3,35,ÛD,24EF
1395 DATA 21,DC,85,2A,07,75,DD,7E,00,AE,77,C9,40,BO,06,1E.2&44
1400 DATA C3,E7,85,3A,0C,75,47,3A,0C,75,3D,C2,EA,85.10,F7,32A5
1405 DATA C9,3A,22,75,B7,C2,22,S6,CD,63,87,3E.01,32,4C,B6,395A
1410 DATA 32,40,86,32,22,75,ED,5B,0D,75,ED.53,4E,86.2A,0F.3F3F
1415 DATA 75,2B,2B,22,50,86,CD,C0,BB,3E,01,CC,59,BC,CD.A5,46DD
1420 DATA BC,C9,3A,4D,86,B7,CO.3A,14.75,CD,DE,BB.3A,23,75,4E3i
1425 DATA CD,59,BC,ED,5&,4E,86,2A,50,86,CD.C0.BB,ED,5B,0[:,574C
1430 DATA 75,2A,0F,75.2B,2B,CD,F6,BB,C3.AE,86,00,00,00.00,5D3A
1435 DATA 00,00,3A,22,75,B7,C2.84,B6,CD,63,67,3E,01,32,4C,6302
1440 DATA 86,32,40,86,32,22,75,32,A7,86,ED,5B,0D,75,ED,53,ô9BF
1445 DATA 4E,86,2A,0F,75,22,50,86,CD,C0,BB,3E,01,CD,59,BC,70A2
1450 DATA CD,A5,8C,C9,3A,4D,B6,B7,C0,3A,23,75,CD,59,BC,3A,78D&
1455 DATA 14,75,CD,DE,BB,3A,24,75,B7,20,06,CD,F5,89,C3.A4,B12C
1460 DATA 86,CD,38,B9,C3,18,9C,00,CD,A5.91,CD,EE,75,3E,01,8919
1465 DATA 32,40,86,32,24,75,3E,00,32,4C,86,32,22,75,32,0B,BD31
1470 DATA 75,32,21,75,32,A7,86,CD,8D,8C,3E,01,CD,DE,BB,3A,9492
1475 DATA 23,75,CD,59,BC,3A,05,75,FE,0A,D2,E7,86,3A,0A,75,9BC0
1480 DATA FE,lE,30,OE,C3,EE,86,3A,OA,75.FE,A5,38,04,CD,AO,A356
1485 DATA 7D,C9,CD,85,7E,CD,D2,7B,C9,3A,4C,B6,B7,Cû,3A,05,ACOE
1490 DATA 75,FE,OA,D2,OF,87,3A,OA,75,FE,1E,DO,C3,15,87.3A,B331
1495 DATA 0A,75,FE,A5,DB,CD,AO,7D,CD,D2,78,C9,3E,O0,32,17,BB7C
1500 DATA 75, CD, 3ù, 37, CD, DB, SC, CD, 09, BB, FE, 20, C2,24,3:^. CD, C49B
1505 DATA A5,8C,CD,F9,B6,C9,2A,03,75,lE,40,06.1B,C5,E5,ô6.CBAC
1510 DATA 50,73,23,10,FC,E1,CD,26,BC.3A,62,37,B7,C2,57,87.D3A8
1515 DATA 1E,80,3E,01,C3,5B,S7,1E,40,3E,00,32,62,97,C1,10,DSB2
1520 DATA DC,C9,00,3A.1E,75,32,CD,37,3A,1F.75,32,CE,37.3A,DF39
1525 DATA 09,75,32,CF,87,3A,OA.75,32,DO.37,2A,OD.75,22,C5,E514
1530 DATA S7,2A,0F,75,22,C7,37,2A.lC,75,22,C9,87,2A.0‘^,75,EAeC
1535 DATA 22,CB,67,C9,3A,CD,B7,32.1E,75,3A,CE,B7,32,1F,75,F171
1540 DATA 3A.CF,87.32,09,75,3A,D0,37,32,0A,75.2A,C5,87.22,F7SB
1545 DATA 0D.75,2A.C7,87,22,0F,75,2A,C9,87,22,1C,75.2A.CB,FD4D
1550 DATA 87,22.07,75,C9,00,00,00,00,00,00,00,00,00,00.00,FF3B
1555 DATA 00,3A,22,75,B7,C2,12.88,CD,63,37,3E,01,32;4C.86,0519
1560 DATA 32.40,86.32,22,^5,32,AF,88,32,A7,96,2A,1C,75,22,0ABC
1565 DATA C5,SA,3A,09,75,32,C9,8A,ED,5B,0D,75,ED,53,4E,86,llFo
1570 DATA 2A,0F,75,22,50,B6,CD,C0,BB,3E.Û1.CD,59,BC,CD,A5.1977
1575 DATA 91,C9,3A,AF,B8,B7.CA,7B,3a,3A,4D,86.B7,C0,3E,00.2138
1580 DATA 32,A7,36,32.AF,a3,3E.01.32,4D,86.2A,0D,75.ED,5&,:738
1565 DATA 4E,86,ED,52,22,A8,88,2A,0F,75,ED,5B,50,&6,ED,52.2EFe
1590 DATA 22,AA,88,3A,CF,37.47,3A,09,75,90,3C,32,AD,83,3A,3548
1595 DATA CE,97,47,3A,1F,75,90,3C,32,AE,B8,ED,5B,0D,75,ED.3C9D
1600 DATA 53,AO,38,2A,OF,75,22,9C,36,ED,5B,4E,36,ED.53.A2.440 h
1605 DATA 88,2A,50.86.22,9E,6B,CD.94,97,C9.3A.4D.86,B7,CO.4C0F
1610 DATA CD,D0.8A,3A,38,75,B7.CA.3E,B8.FE,01,20,03,CD.8D.5430
1615 DATA 8C,3E,00,32,AF,Bb,3E,ùi,32.4D,B6,C9,00,00,Ou,00.597u
1620 DATA 00,00,00,00,00,00,00,00 ,ijO, 00,00,00,00.00,00,00.5370
1625 DATA 3A,A7.86,FE,01,CA,3B,89,ED,5B,OD,75.2A.OF,75.2B,5F04
1630 DATA 2B,CD,CO,BB,21.O0,OO.ED.5B,A8,88.D5,CD,F9,&B.Dl,6B37
1635 DATA 2A,0D.75,19,EB.2A,0F,75,2B,2B,CD,C0,BB,ll,00,00,6D4i
1640 DATA 2A,AA,98,CD,F9,BB,ED,5B,0D,75,2A,0F,75,2B,2B,CD.74BC
1645 DATA C0,BB.ll,00,00,2A,AA,Be,E5,CD,F9,BE,El.ED,5B,0F,7D42
1650 DATA 75,19,2B,2B,ED,5B,OD,75,CD,CO,BB.21,00,00,ED,5E.33A1
1655 DATA A8,88,CD,F9,BB,2A,9C,B6,2B.2B.22,84,B9,ED,5B,A0.BC0D
1660 DATA 88,ED,53,66,39.2A,9E,86,2B,2B,22.66,S9,ED.5B,A2.93 h'
1665 DATA BS,ED,53,8A,B9,C3,5B,e9.2A,0F,75.2B,28,22,84,89,9A59
1670 DATA ED,5B,0D,75,ED,53,36,39.2A,50,86,::6,2B,22,33,3=',A0FB
1675 DATA ED,5B.4E,36,ED,53,3A,B9,CD,C0,BB,2A,88.89.ED.5B.AA35
1680 DATA 36,39,CD,F6,BB,2A,34,39,ED.5B,86.39.CD,F6,eB.2A.B3F3
1685 DATA 84,89,ED,5B,BA,89,CD,F6,BB,2A,B8,89,ED,5B,eH,a9,BD74
1690 DATA CD,F6,BB,C9,00,00,00,00.00,00,00,00.00,00,()0,00,COBB
1695 DATA C5,D5,E5,CD,EA,BB,E1,D1,C1,C9.3A,36,75,FE,03,CA,CB98
1700 DATA C7.89,FE.02,CA,BA,89,FE,01,28,OA,FE,04.CO.3A,2E.D350
1705 DATA 75,CD,DE,BB,C9,E5,D5,C3,DD,B9'.E5,D5,CB.3D,7D,CB.DEE1
1710 BATA 47,C2,E6,99,C3,EC,39.E5,CB.3D,7D.CE.47.j5.C2,DD.E931
1715 DATA e9,CB,3B,CB,3B,7B,CB,47,20,0C,C3,EC,S9.CB,3B,CE,FlD6
1720 DATA 3B,7B,CB,47,20,06,3A.2E,75,C3,EF,39.3A,2F,75.CD,F889
1725 DATA DE,BB,D1,E1,C9,2A.0D,75,ED,5B,4E.86,&7,ED,52.CB,0226
1730 DATA 7C,CO,2A,50,36,ED.5B,OF.75,B7,ED,52,CB.7C,CO,CB,OAFe
1735 DATA 3C,CB,lD,23,E5,Cl,2A,50,B6,2B,2B,22,8E,89,C5,2A.ll6l
1740 DATA 8E.39,ED.5B,4E,a6,D5,CD,C0,BB,Dl,D5,CD.9A.89,CD,lC14
1745 DATA 90.89,E5,B7,2A,0D,75,2B,2B,2B,2B,ED,52,CB,7C,E1,23B8
1750 DATA C2,50,8A,13,13,13,13,CD,9A,39,CD,90,89,C3.32.3A,2AC5
1755 DATA D1,2A.8E,69,2B,2B,22,8E,89,C1,CD.09.BB,FE,7F,C6,32FD
1760 DATA 0B,78,B7,C2,1E,3A,79,B7.C2,1E,8A,C9,2A,0F,75.2B,39DD
1765 DATA 2B,ED,5B,0D,75,CD.C0,BE,21,00,00,11,1C,00,CD,F9,402E
1770 DATA BB,21,F2,FF,11,00,00,CD,F9,BB,21,00,00,11,E4,FF,47A2
1775 DATA CD,F9,BB,21,0E,00.11,00,00,CD,F9,BB,CD,09,BB,FE,4F73
^ 1790 DATA 7F,28,1C,C9,2A,0F,75,2B,2B,ED,5B,0D,75,CD,CO,68,5615
CPC n°36- Juillet/Août 1988
71
1785 DATA 3A,37,75,CD,FC,B&,CD.A5,9î,CD,8D,SC,CD,D5.Sû,3E,5FŒ
1790 DATA 00.32,21,75, l9, 00,00,00,00,00, OCi, 00,00,00,00.0(/,6l5F
1795 DATA 3A.09,75,47,3E,Aù,Ç0,47.3A,AD,38,&8,DA.E0.BA,7B.68F6
1800 DATA 32,2A.8B.3A.0A.75.47.3E,C3.90,47,3A,AE.88,B8.D2.6FB4
1805 DATA F3.8A.47,ED.5B,C5,8A.2A,07.75.ED,53.CB,8A,22,CD.7839
1810 DATA 8A.3A,C9,8A,32.C7,3A.3A.09.75.32,C8.8A,C5,E5,C'5,308E
1815 DATA 3A,2A,eB,F5,CD,2B,8B.F1.3D.C2,13.88,Dl,21,50,00,8705
1820 DATA !9.EB,E1,CD,26,BC,C1,!0.D1.C9,00,CD.9A.8B.2A,CD,90AD
! 825 DATA 6A.3A,C8,8A,CB,47,C2.65.SB,3A,38,75,B7.CA.45.8B.98BF
1830 DATA FE.02.C2.57.8B,3A,CA,eA.Eo,AA,BT,CA,92.3B,47,7E.AlE4
1S35 DATA E6,55, BO,77,C3.92,8B,7E,Eû, 55. 47,3A,CA.SA. E6, AA,AB44
1340 DATA e0,77,C3,92,3B,3H,3B,75,B7,CA,71,9B.FE,02.C2,83,B3F4
1845 DATA 8B,3A,CA,8A,EÉi,55,B7,CA,aE,8&,47,7E,E6,AH.B0,77,BD5E
1850 DATA C3,BE,aB,7E,E6,AA,47,3A.CA,3A.E6,55,B0,77,23,22,C5C4
1855 DATA CD,SA.3A,C8,8A,3C.32,CS,8A,C9,ED,5B,CB,SA.3A.C7,CECE
1360 DATA 8A.CB,47,C2,S3.3E,lA,Eo.AA,47,CB,0F,B0,32.CA.3A,D7ûB
1865 DATA C3,C6,8B,lA,E6.55.47,CB,07.B0.32,CA,8A,ED,5B.CB,EÛ3£i
1870 DATA SA.13.ED,53,CB.8A.3A.C7.8 h, 3C,3;,C7,8A.E9,3A,22,E~D7
1875 DATA 75,E9,C2,FD.3B,CD,63.87,3E,02.32,4C.86,32,4D.8ü.EF4C
1880 DATA 32.:2,75,32.A7,3ii,ED,5B.0D,75,ED.53,34.0!,2A,0F,F53C
1885 DATA 75,22,8D,0î.3E,01,CD,59.BC,CD,A5,8C,C9,3A,4D.8t..FC56
1890 DATA B7.C0.3A,23.■5.CD.59,BC.3A.14.75,32.A8.01.3E,01.e:5E
1895 DATA 32.:7,75.3E,û3.32.0è,75.:D.94,S7.C3,AE.eû,2A,0D,0630
1900 DATA 75,ED.5E,34.01.ED,52.22.96.C!,CB,25.C5,14.^D,2F.0EE3
i9-:5 DATA ôF,7C,2F.i7,23,2;.22.7a,8C.2H,8D.Cl,ED.5B.0F.75,î456
1910 DATA ED,52.23.:3,22.9F,jI.CB.25,CB.l4.2:.'A.SC.E2.3B.lAûC
.915 DATA 8 h , 01.2A, 'jF, 75. iB, iB, CD. CO. BB, 2A. ~h. 6C. 11,00,00,1 FEE
1920 DATA CD,F9,BB.ED.5&.0D.75.2H,8D,Ol,CD,C0.ES.ED,5B,7e,29F9
1925 DATA SC.2î.00.00.CD,F9,BB,C9,(X?,00,CiC',00,00,00,00,00,2CF0
1930 DATA OO.OO.OO.OO.OO.OO.O’O.OrO.iXT.OO.OO.OO.OO. 11.00,30.2r'3l
1935 DATA 21,00,CO.06.C8.C5,E5,01,50,00,ED,BO,El,CD,26,BC,3506
1940 DATA Cl. 10,F2.C9,'OO, 11 ..JO,30,21,'Xj,CO,06.C8,C5,E5,'06.3834
1=45 DATA 50,1A,77,23,13,10.FA,E1,CD,:6,BC,C1.10.EF,00,00,41A5
1950( DATA !1,72,7E,1 h,47,48,3E,iX',F 5,D5,CD.32,BC.D1.13,1A.4S1Û
1955 DATA 47,48,Fl,3C,FE,10,C2.C8.8C,C9,00,3A,05.75,FE.OA,4F75
I960 DATA D2.E9,3C,21.=0,CO,C3,EC.8C,21,OO,CO,22.1A.75.3A,5794
1965 DATA 17,75,B7,C2,0B.8D.3£,01,32,17,75,2A,01.75.22,AF,5C9F
1970 DATA 3D,CD,C3,3F,C9.00,00,00,00,00,00,3A,3A,75,B7,C2,6276
1975 DATA 16,8D,CD.IA,SD,C9,CD,23,8D,C9.CD.A0.75.3A,39,75,6Aô6
1980 DATA C3,26,8D,CD,24,BB,E6,1F.CB,27,5F,16,00.DD,21.3E.713Û
1965 DATA SD,DD,19,DD,5E,00,DD,56,Ûi,D5,DD.E!.DD,E9,80,8D,7A86
1990 DATA 02.SE,46,8E.80.8D,9C,8E,80,8D,30,BD.9C,SE,EA,8£,âZDF
1995 DATA 80,BD, 80,8D. £A, 8E,B(;, BD,02,3E, 46,8E.80,8D,FE,SD,8B7A
2000 DATA FO,BD,FT,BD,80,3D,E9,BD,80,8D,80,SD,E9,3D,E2.BD,95FD
2005 DATA 3O.SD,8O,8D,E2,3D,8O,0D,FO,3D.F7,8D,BO,3D,8O.BD,9FAE
2010 DATA CD.97,9D,CD,8D,3D,CD,97.8D,CD,8D,8D,C9,06,50,3E,A8BB
2015 DATA 60,3D,20,FD,10,F9.C9,2A,07,8D,06,04,E5,3E,CÔ,AE,AFA0
2Ci20 DATA 77,23,3E,C0,AE,77,E1,F5,CD,26,BC,F1.10,EE,C9,01,B89B
2025 DATA 75,DD,2A,01,75,2A,1C,75,3A,Ô9,75,CB,47,C2,CC,8D,BF2D
2030 DATA 7E,E6,55,47,DD,7E,ô0,E6,AA,C3,D5,8D,7E,E6,AA.47,C892
2035 DATA DD,7E,00,E6,55,BO,77,DD,7E,00,5F,2A,07,BD,CD,9C,D030
2040 DATA 8F,C9,CD,EA,SE,CD,B1.8D,C9,CD,9C,3E,CD,B1,3D,C9,DB6C
2045 DATA CD,02,8E,CD,B1,8D,C9,CD,46,8E,CD,B1,SD,C9,CD,B1,E590
2050 DATA 8D,C9,3A, IF,75.B7,CS.3A,OA,8D, B7, CA,42.8£.3D,32.ECC4
2-055 DATA 0A,8D,3A, 1F,75,3D,32,1F,75,3A,OA,75,3D,32.0A,75,FOD3
2060 DATA 2A,1C.75,11,B0,FF.19,22,1C,75,2A,07.8D.CD.B6,8F,F6Eh
2065 DATA 22,07,8D,CD,80,BD,2A,07,75,CD,29,BC,22,07,75,C3,FD33 ^
‘2070 DATA 85.8E,CD,C3,3F,C9.3A,1F.75.FE,CS,C8.3A.0A.3D,FE,0659
2075 DATA 2B,CA,98,8E,3C,32,OA,8D,3A,!F,75,3C,32,IF,75,3A,0983
2080 DATA 0A,75,3C,32,0A,75,2A, 1C,75,ll,50,Ci0,19.22,1C,75,'0ED7
2085 DATA 2A,07.8D,CD,A9.8F.22,07.8D.CD,80.8D,2A,07,75,CD,159D
209(0 DATA 26, BC. 22,07,75,06,00.3A.OA, 75,57.3E,C8,92,4F,CE, làE5
2C)95 DATA 2Î.CB, 10,ED.43,i)F,75,C9.CD.C3,8F,C9,3A,09.75,&7,22B5
2100 DATA Ca.CB,47.CA,B0,8E,3A,09,8D,3D,32,09,80,C3,D1 .SE,IhSE
2105 DATA 3A,09,SD,FE,06,DA,E6,8E.3D,32,09,eD,2A,lC,75,2B,309B
2110 DATA 22.1C.75,3A,1E.75.3D,32,lE,75.2 h, 07,75,26,22,07.3417
2115 DATA 75,3A,09,75,3D,32,09,75,2A,07,8D,2B,2B,22,07,SD.37FE
2120 DATA CD,80,3D.C3,35,8F,CD.C3,3F,C9.3A,09.75.CB.47,C2.40D0
2125 DATA FC,BE.3A,09,8D,3C,32,09,8D,C3,23,eF,.3A, 1E.75.FE,476E
21.iO DATA 50,C8,3A,09,SD,FE,2B,D2,48,8F,3C,32,09,3D,2A, 1C.4D72
2135 DATA 75,23.22,1C.75,3A,1E,75,3C,32,!E.75,2 h,07,75,23.5154
2140 DATA 22.07.75,3A.09.75,3C.32,09,75,2A,07,3D,23.23.22,54BC
2145 DATA 07.8D,CD,80,8D,06,C»0,3h, 09,75,4F,CB,21,CB. 10,CB,5AC9
2150 DATA 21.CB,10,ED,43.0D,75,C9,CD,C3,3F,C9,DD.2A.05.3D,62C1
2155 DATA 2A.1A.75,3E,2C.47.C5,DD,E5,E5,3E.14.47, C5.E5.DD.6AB7
2160 DATA 7E,00,E6,AA.4F,CB,2f.E6,55,Bl,5F,E5,CD.9C..3F,Ei,'4r
2165 DATA 23,23,DD.7E,00.E6,55.4F,CB,27,E6,AA.B1,5F,CD.9C.7C3C
2170 DATA 3F,El,!l,04,00,19,DD,23,C1.10,D2,Ei.CD,A9,eF,DD.S44i
2175 DATA El,11,50,00,DD,19.C1,05,C2,56,3F,C9,06,04.E5,73,8&11
2180 DATA 23,73,E1.CD,26,BC.10.F6.C9,CD,26,BC,CD,26,BC,CD,9431
2185 DATA 26,BC,CD,26,BC.C9,CD,29.BC.CD.29,BC,CD,29,BC.CD,7D6E
2190 DATA 29.BC,C9,3A.l£,75,FE.0A,D2,lS,90,E7.C2,E6,eF.3A,A593
2195 DATA 09,75,C6,04.32,09,8D.2A,1A.75,22 ,ô7,8D.2h,1C.75,A9CD
22!» data 22,05,8D,C3,CF,90,47,C5,2A.1C,75,2B,10,FD,22.':;5.AFC9
2205 DATA 8D,3A,09,75,C6,04,32.09,3D,Cl.2A,lA,75,78.CB.27,B5B4
2210 DATA CB,27,5F,16,00,19.3A.09.75,CB,47.CA.12.90.11.0;,BA4D
2215 DATA », 19,22,O*?,BD,C3,CF, 90, FE, 46. DA. 9D,90,47. FE, 4F, C21D
2220 DATA C2,53,90.2A,IC,75,I1.ED,FF.19.22,05,3D,2A.!A.75,C800
2225 DATA 11,4E,00,19,3A,09,75,CB.47,C2,45,9C,1!,FE,FF.19,CE00
2230 DATA 06,27,C3,47,90,06,28,22,07.SD,78.C6,û4,32,09.8D,D2B5
2235 DATA C3,CF,90,3E,4F,90,5F,16,»,F5,2A.IC.75,19,11.ED,D930
2240 DATA FF, 19,22,05,8D,2A, 1 A, 75,11.4C,», 19.F1, F5, CB,27,DF03
2245 DATA CB,27.47.3sA,09,75,CB,4?,CA,7D,90,05,05,2B, 10,FD,E51F
2250 DATA 22,07.SD,Fl,CB.27,47.3E.27,90,47.3 h.09.75.CB.47,EB05
2255 DATA C2,94,90,05,78,C6,04,32,09,6D,C3,CF,90,2A,1C,75.F1D7
2260 DATA 11,F7,FF,19,22,05,8D,2h,1h, 75,Û6,26,3A,09.75,CB,F713
2265 DATA 47,C2,B6,90,05,05,78,5F, 16,», 19.22,07,BD,06,14,FB42
2270 DATA 3A,09,75,CB,47,C2,C9,90,05,78.C6.04.32,09.8D.3A.0170
2275 DATA iF,75,FE,l6.D2,O3,9i,B",C2,£3,9O,5E,OO,32.()h,ôD,O07l
2280 DATA C3,7A.91,32.OA,8D,47,C5.2A,05.8D,11.BO,FF,19.10,0EB9
2285 DATA FD,22,05,8D,C1,2A.07,8D,CD,A9,8F,10,FB,22.07.8D,15AF
2290 DATA C3,7A,91,FE,B2,DA.5A,9I,FE,Ce,C2.30,91,3E,:B.32, 1 ED 6
2295 DATA 0A,8D,2A,07.BD,06,2C,CD,A9,8F,10,FB,22,07,8D,2A.244D
2300 DATA 05,aD,06,2C.ll,BO,FF,19,10,FD,:2.05,8D,C3,7A,91,2A79
2305 DATA 47,3E,CS,90,4?.3E,2C,90,32,OA,8D,2A,07.BD.47,CD,3032
2310 DATA A9.8F,10,FB,22,07.8D,2A,05,3D,3A,OA,8D,47.11.BO,35C0
2315 DATA F,19,10,FD,22,05,8D,C3,7A,91,2A,05,8D,06,16.11,3650
2320 DATA BO.FF.19,10,FD,22,05,BD,2A,07,SD,06.I6.CC,A9,8F,41SS
2325 DATA 10,FB,22,07,8D,3E, 16,32,OA,8D,CD.4C,8F,06,»,3A,467E
2330 DATA 09,75,4F,CB.21.CB,10,CB,21,CB,10,ED.43,OD,75,06.4C91
2335 DATA ».3A,0A,75,57,3E.Ce,92,4F.CE,21,CB, 10,ED,43,0F,52eE
2340 DATA 75,C9.00.00,0Û,ED.5B.ie,75,2A,03,75,06,18,C5,06,572C
2345 DATA 5Û,E5,1A,77.23.13,10.FA,El,CD,26.BC,Cl,lû.E=,C9.5F4B
2350 DATA ». », 00,00,00,00, », », 00, '00,00, »,», 00, », 00, 5F4B#
72
CPC n°36- Juillet/Août 1988
Coktel Vision
Educatif
P'esSA/
ePUCAT/F
LA BOSSE
DES MATHS
V ous parler de travail de
cl^se en plein mois de
juillet, cela peut paraî¬
tre très dur, je sais,
mais ce logiciel est tellement peu
■"^^barbatif qu’il vaut la peine
d’être présenté (même en
période de vacances...) car il a
différentes utilisations possi¬
bles. Ainsi, ceux qui passent en
4ème avec quelques difficultés
pourront réviser presque en
s’amusant le programme de
maths de Sème et les autres
pourront déjà découvrir sous un
bon côté ce qu’ils apprendront
l’année prochaine. Quoiqu’il en
soit, notez bien le nom de ce
logiciel, vous les parents d’élè¬
ves de Sème car vous en aurez
peut-être besoin dès le mois
d’octobre prochain.
Il faut d’abord que je vous pré¬
sente le pauvre Jo et son his¬
toire ; tout allait pour le mieux
dans le rneilleur des mondes
jusqu’au jour où Jo perdit sa
bosse... des maths. Les consé¬
quences furent tout de suite dra¬
matiques : tous ses amis lui
tournèrent le dos et pis encore,
il fut exclu du clan des “Big
Bosses” ce qui lui enleva toute
dignité.
Complètement découragé et au
bord du suicide, Jo rencontre
alors Luther, le sage et savant
Luther qui lui propose de lui
servir de guide dans un périlleux
voyage ayant pour but de recon¬
quérir sa bosse. Jo accepte le
projet avec enthousiasme mais
Luther lui précise bien que la
traversée de l’Océan de la Géo¬
métrie, de la Contrée Numéri¬
que et de la Cité des Données ne
va pas être des plus faciles et
qu’il faut à tout prix qu’il bosse
dur...
Dans un premier temps, ils
s’embarquent tous deux pour
l’Océan de la Géométrie et ren¬
contrent tout de suite le maître
des lieux en la personne de
Greenpeace, baleine à bosse qui
ne leur réserve pas un accueil
particulièrement chaleureux.
On dirait même qu’elle est prête
à les croquer et ce sont les jam¬
bes toutes tremblantes que Jo se
jette à l’eau pour la première
épreuve qui concerne les figures
planes : une émeraude qui, vue
du dessus, représente un quadri¬
latère dont les diagonales se
coupent en leur milieu et sont
perpendiculaires, c’est un, c’est
un... losange. Oui, gagné ! Jo
vient de marquer ses 4 premiers
points et il sent déjà que sa
bosse est prête à se regonfler.
Allez, continue moussaillon !
Après un problème sur la for¬
mation d’un parallélogramme et
la somme des angles d’un poly¬
gone, Jo est confronté à des
questions de connaissances aux¬
quelles il doit répondre par oui
ou non (ex : un losange est-il un
parallélogramme ou un carré
est-il un trapèze isocèle ?). C’est
seulement au bout de 6 exerci¬
ces complets que Jo est autorisé
à quitter les figures planes mais
il doit encore visiter les symé¬
tries et les cubes avant de pou¬
voir saluer poliment Greenpeace
pour continuer son voyage.
Brièvement, sachez que Jo doit
à nouveau faire face à un con¬
trôle de connaissances par rap¬
port à 2 points A et B ; sachant
que A est le symétrique de B par
rapport à la droite d ; sans
compter le problème du cercle
ou de l’axe de symétrie. Jo subit
encore 6 exercices sur les cubes
et c’est la liberté ! Oh toute pro¬
visoire car le bon ami Luther le
guide désormais vers la Contrée
Numérique...
Cette fois, ils sont accueillis par
un redoutable matou-matheux
qui porte le doux nom de Kid
Cat ; et c’est sans aucune déli¬
catesse qu’il pousse le pauvre Jo
claquant des dents vers les cal¬
culs décimaux. Il doit se tortu¬
rer les méninges pour répondre
correctement à des questions
d’ordre de grandeur telles que
si X et Y sont plus petits que 1,
en est-il de même pour X x Y ?
Ou si A X B est plus petit que
A, cela veut-il dire que B est
plus petit que 1 ?... Mais ce
n’est pas tout car il doit alors se
munir d’un papier, d’un crayon
et éventuellement d’une calcu¬
latrice pour résoudre les problè¬
mes suivants : retrouver le prix
d’un article connaissant celui
des autres articles et le total,
trouver une distance totale entre
plusieurs points ou trouver un
nombre après avoir suivi une
suite logique où sont intervenus
des calculs... Mais tout ceci ne
représente qu’une mise en train
car il reste encore à considérer
les calculs relatifs et les fractions
avant de découvrir un Jo qui
commence à tirer la langue
peut-être mais qui se refait une
santé visible du côté de la
bosse...
Et pourtant le circuit n’est pas
encore terminé car il reste
encore à explorer la Cité des
Données où règne sans aucun
conteste possible Sylvester Car¬
tonne surnommé le bosseur
fou !
Au grand désespoir de Jo,
Sylvester déclare que celui-ci
manque sérieusement d’exercice
et il le propulse alors sans autre
préambule dans les problèmes
d’aires et de volumes suivis de
l’étude des tableaux et graphi¬
ques pour terminer dans une
magnifique ligne droite avec
l’étude de la proportionnalité.
Enfin, fini !
Il faut reconnaître que le par¬
cours de récupération de bosse
des maths est long et doulou¬
reux d’autant plus qu’en cas de
mauvaise réponse, la solution
n’est pas donnée, donc l’élève
utilisant ce logiciel ne rendra Jo
complètement heureux que s’il
arrive à progresser à moins qu’il
ne se fasse aider par un plus
grand ! A chaque instant, il est
possible de quitter un exercice
ou même un thème mais ce n’est
pas une solution. Les exercices
proposés sont clairs, pas forcé¬
ment faciles et couvrent bien le
programme de maths. Vous
avez sans doute compris que j’ai
été séduite aussi bien par la pré¬
sentation du logiciel que par les
notions abordées et la
les traiter. A
BA/^C PBSSA/
W({/C/£L8
Blood
BROTHERS
pierres précieuses ; bien
entendu, il y a eu mort d’hom¬
mes et notamment les parents
de Hark et Kren, jeunes étu¬
diants brillants.
Après avoir fait le pacte du sang
que pratiquaient autre fois les
Indiens, Hark et Kren sont unis
à Jamais pour venger leurs pa¬
rents et récupérer les pierres pré¬
cieuses dans la ville souterraine
de Scorpia, constituée de mines
et de tunnels. Disposant d’ar¬
mes sophistiquées, les deux frè¬
res peuvent visiter une mine où
rôdent de nombreux robots
dangereux tout en sachant qu’ils
pourront y récupérer, en plus
des pierres précieuses, des réser¬
ves d’armes, d’énergie ou de
carburant pour leur Jet Bike qui
leur permet de passer à une
autre mine. Ils découvrent aussi
qu’ils peuvent ouvrir des passa¬
ges dans une mine en détruisant
des objets qui ressemblent à des
sapins miniatures.
Lorsqu’une mine a été complè¬
tement mise à nu, il leur faut
Gremlin Graphics
Arcade/Aventure
ur la belle et paisible
Sylvonia, la bande des
Scorpions a encore
joué de son dard mor¬
tel en pillant tous les coins de la
planète pour trouver sa richesse
matérialisée sous la forme de
passer à la suivante en zigza¬
guant habilement entre une série
de blocs (dont certains sont des¬
tructibles) jusqu’au moment où
ils atteignent une grille qui cons¬
titue l’entrée de la nouvelle
mine. Il ne leur reste plus à cet
instant qu’à recommencer leurs
investigations...
Il y a deux possibilités de jeu :
ou vous jouez à deux et descen¬
dez dans la même mine mais il
faudra toujours être ensemble
d’un écran à l’autre ou chacun
va dans sa mine... Blood Bro¬
thers n’est pas un super futur hit
mais c’est un bon logiciel avec
des graphismes bien travaillés et
colorés (à part les phrases d’ac¬
cès à une autre mine...) et une
animation plus que correcte. A
voir.
Starring
CHARLIE CHAPLIN
US Gold
Simulation
ser dans telle ou telle catégorie ;
c’est le cas de Starring Charlie
Chaplin dont le sujet est très
original !
En effet, vous êtes invité à deve¬
nir producteur et metteur en
scène avec pour vedette princi¬
pale, Chariot (il faut ce qu’il
faut...). Ainsi, vous disposez de
9 scenarii avec pour chacun
d’eux l’indication du coût du
tournage, du synopsis et du
nombre de scènes. Votre choix
étant fait, il ne vous reste plus
qu’à tourner chaque scène.
D ans toute la produc¬
tion de logiciels qui est
très importante sur
une année, il y en a
certains qui sortent de l’ordi¬
naire et qui sont difficiles à clas¬
■
1
1
102
1
ILJ
» I « « r
* « « < t 1 t
Conspiration
Ubi Soft
Aventure
V oulez-vous connaître
l’art et la manière de
vivre une bonne aven¬
ture en passant de 1988
à Messidor an 111 ? Pour cela,
il vous suffit de charger Cons¬
piration qui va vous saisir alors
que vous êtes tranquillement
installé dans une chambre d’hô¬
tel à Orléans. Ayant emporté
votre téléphone dans la salle de
bains, vous vous apprêtez à
prendre une bonne douche lors¬
que soudain, la sonnerie du télé¬
phone se fait entendre. Vous
répondez sans savoir ce que va
entraîner ce geste !...
Tout d’abord, vous serez con¬
vié à vous rendre dans une église
où un missel oublié intention¬
nellement vous donnera un
autre rendez-vous : il s’agit de
la demeure du futur Louis XIX
qui se trouve à St Florent-le-
Vieil. Là, poussé par votre
grande curiosité, vous pénétrez
dans cette demeure par effrac¬
tion et commencez à fouiller ;
votre seule “trouvaille” est de
recevoir un grand coup derrière
les oreilles et vous vous réveil¬
lez près d’un tombeau... Vous
ne tardez pas à savoir que, par
ailleurs, vous avez changé
d’époque et cela va vous servir
pour essayer de savoir ce qu’est
devenu le diptyque des Déclara¬
tions des droits de l’homme,
mystérieusement dérobé en jan¬
vier 1988. Etrange procédure,
non ? Toujours est-il que vous
allez pénétrer le noyau des
Conspirateurs (pour garder la
tête sur les épaules, tâchez de
crier “Vive la Révolution” ou
“Vive le Roi” à bon escient !)
et remplir ainsi votre mission
qui consiste à faire un échange
entre un livre anodin et un dos¬
sier ultra-confidentiel qüe vous
devrez rappforter à St Florent-le-
Vieil. Mais je vous préviens la
chute sera terrible et le retour à
notre époque se fera par un
réveil très douloureux !...
Conspiration fait partie des
bons logiciels d’aventure du
côté des graphismes qui sont
superbes ; pour ce qui est du
scénario, il n’est pas spéciale¬
ment original mais il “tient la
route” et n’est pas trop difficile.
Par contre, le côté analyseur
syntaxique laisse à désirer par sa
trop grande rigidité (emploi
obligatoire de l’impératiO d’une
part, quand il n’y a pas des fau¬
tes d’orthographe d’autre part
(SORT au lieu de SORS) ! Ceci
étant dit, ce logiciel mérite d’ap¬
paraître en bonne place dans
votre logithèque.
sachant qu’elle dure 1 minute.
Bien entendu, vous pouvez
visionner ou même retourner
une scène si elle ne vous satis¬
fait pas, mais attention, ce n’est
pas gratuit ! Et ensuite, il fau¬
dra se soumettre au verdict du
public en projetant votre film
sur grand écran. Plaira ? Plaira
pas ? Vous le saurez le lende¬
main en lisant les journaux et si
cela n’a pas été bon, il vous fau¬
dra songer à renflouer les cais¬
ses... ou à changer de métier !
A priori, les possibilités que
laisse entrevoir ce logiciel sont
très alléchantes ; malheureuse¬
ment en l’utilisant, vous vous
sentez brimé par la liberté d’ac¬
tion toute relative qui vous a été
octroyée et c’est très dur pour
un créateur ! Par ailleurs, ani¬
mation et graphismes sont
acceptables mais il faut noter
que pour Starring Charlie Cha¬
plin le résultat est meilleur sur
PC que sur CPC.
Creamina afin de vivre de lon¬
gues heures paisibles. Malheu¬
reusement pour lui, ce ne sont
que de douces illusions car
Creamina vient d’être frappée
par un grand malheur ! Ryu,
sorcier terrifiant et malveillant
a découvert que le trésor de
Babylone se cachait dans cette
cité et en échange du trésor il y
a laissé une multitude de
monstres !
A charge donc pour Karnov
d’affronter tous ces monstres et
Karnov
Electric Dreams
Arcade
K arnov est une véritable
force de la nature qui
a passé sa vie à sillon¬
ner tout le pays com¬
me “homme fort” d’un cirque ;
maintenant que l’heure de la
retraite a sonné, Karnov décide
de rentrer dans sa ville natale :
pecieur c.iouseau est sur mes
traces. Il va donc falloir jouer
finaud pour ne pas réveiller le
maître des lieux et ne pas se
faire repérer par ce cher Clou-
seau. Alors, j’use d’artifices
pour que mon patron se rendre
dans les pièces où je désire
aller : un réveil, une cloche, un
trampoline... et une panthère
rose gonflable ! Avec tout cet
armement, je dois être capable
de remplir d’or mon petit sac et
de passer au suivant de ces mes¬
sieurs (4 fois en tout...).
Ça, c’est la théorie car la Pan¬
thère Rose, ah oui, c’est joli,
très joli même pour ce qui est du
graphisme mais pour y jouer,
alors là c’est tout autre chose !
Alors, si vous êtes persévérant
dans l’âme, allez-y ; sinon
abstenez-vous car vous ne
dépasserez sans doute pas les 3
premiers écrans, ce qui est
navrant !
PANTHERE
Infogrames
Arcade
Pacifique seulement voilà, toute
panthère rose que je suis, je n’ai
pas un sou en poche. Il ne me
reste donc qu’une seule solu¬
tion : me faire embaucher en
tant que maître d’hôtel dans une
de ces belles maisons de haut
standing et profiter du sommeil
du juste du propriétaire pour
l’alléger de tout or, bijoux ou
autres qui ne lui servent à rien !
Seulement, j’étais loin d’imagi¬
ner que j’allais rencontrer deux
problèmes de taille : d’une part.
BA/VCP£S8A/
BA/VC D E88A/
Gothik
Firebird
Arcade IAventure
Pour Olga, l’heure est grave ;
elle doit se rendre dans le
royaume de Belorn pour venir
au secours du plus célèbre
druide du pays, j’ai nommé
Hasrinaxx (les fanatiques de
jeux auront déjà reconnu le
héros de Druid et d’Enlighten-
ment Druid II). Celui-ci est
complètement impuissant
depuis qu’un “méchant” sei¬
gneur fait régner sa loi sur le
royaume de Belorn et qu’il a
découpé notre pauvre druide en
6 parties disséminées dans un
immense château qu’il a fait
construire. La mission d’Olga
est donc simple en soi : pénétrer
dans le château, visiter toutes les
tours et récupérer les différents
llô Olga ? Ma p’tite
.bonne femme du rada-
da, mais t’es revenue
1 du Nebraska, you-
Heu, j’ai l’impression
qu’il y a une petite erreur sur la
personne ; il s’agit bien d’Olga
mais c’est un super guerrier pos¬
sédant des pouvoirs magiques,
en particulier ceux des éclairs et
des boules de feu.
morceaux du pauvre homme.
Mais attention, Olga n’est pas
seule dans ces tours : des mons¬
tres en tout genre rôdent et il s’y
trouve différentes potions qui
peuvent être aussi bien bénéfi¬
ques que maléfiques.
De type Gauntlet, ce logiciel va
séduire les adeptes du genre
grâce à un graphisme et à une
animation corrects ; de plus, les
différentes potions accessibles
sont très nombreuses et lorsque
vous terminez une partie, un
“ordre de druide” vous est
attribué selon votre habileté,
votre durée de vie et votre taux
de réussite. Etant donné qu’il y
a 64 distinctions possibles, vous
avez le temps de vous surpas¬
ser : de plus, si Olga ne vous
inspire pas, alors choisissez Olaf
qui lui est le plus rapide lanceur
de flèches du royaume...
S PAGE RAGER
Loriciels
Simulation
N ous sommes au XXII'
siècle, très exactement
en l’an 2132 ; nous
vivons dans un monde
dont nos ancêtres du XX' siè¬
cle ont rêvé toute leur vie :
moins de travail, plus de loi¬
sirs ; en somme une meilleure
qualité de vie ! Le pied quoi !
Eh bien non, c’est la catastro¬
phe la plus complète, la parfaite
décadence et l’ennui le plus
total...
La vie étant un éternel recom¬
mencement, nous évoluons
maintenant dans un remake de
Rome antique avec la recherche
continuelle de nouvelles sensa¬
tions fortes, pures et dures...
Vous n’échappez pas à cette
envie et décidez de participer à
cette course infernale, sans
autre règle que celle d’essayer de
franchir la ligne d’arrivée. Ce
but est loin d’être facile à attein¬
dre car les autres concurrents
sont nombreux (vous pouvez
d’ailleurs les anéantir, les pous¬
ser, les envoyer faire d’acroba¬
tiques sauts périlleux avec leur
machine) et des bombes sont
présentes sur le parcours. Enfin,
il y a un dernier petit problème ;
vous ne devez pas batifoler hors
de la ligne tracée pour la course
car si vous êtes trop haut, trop
bas, trop à droite ou trop à gau¬
che, vous allez perdre de l’éner¬
gie et nous avons beau être en
2132, elle est toujours rare et
précieuse, alors prudence !
Space Racer est une adaptation
du logiciel qui était sorti sur
Atari et malheureusement, elle
est un peu décevante tant au
niveau des couleurs que des gra¬
phismes. L’animation, quant à
elle, est correcte et l’accéléra¬
tion, sans être fulgurante est
suffisamment rapide pour vous
donner quelques émotions...
A noter la touche CTRL qui
inverse les commandes, ce qui
satisfera tous ceux qui veulent
monter en poussant le joystick
vers le haut et la touche N qui
vous permet de connaître en
pourcentage la distance restant
encore à parcourir.
BAA/C PeSSAf
Wô/c/ecs
Gunsmoke
Go / • Arcade
E t un petit tour dans le
Far West et sa dure loi,
un ! De plus, vous êtes
du côté de la barrière
où vous allez forcément vous
faire remarquer avec cette étoile
que vous portez sur le cœur...
Ainsi en qualité de sheriff, vous
êtes chargé de suivre à la trace,
de retrouver et d’éliminer cinq
hors-la-loi coriaces qui, ne vous
y trompez pas, n’ont pas tous
l’apparence d’horribles brutes
mal rasées et complètement aso¬
ciales ! Vous remarquerez que
le scénario est toujours le
même : le hors-la-loi, se sentant
traqué, cherche refuge dans une
ville où tous les ranchs du coin
sont à ses bottes (il y en a tou¬
jours une !) ; ce qui fait que,
lorsque vous vous pointez à
ladite ville, tout le monde se
précipite sur vous, bien décidé
à vous écraser sans aucune ver¬
gogne... Heureusement que
vous avez la gâchette facile et
plus d’une ruse dans votre sac !
Cette adaptation de jeu d’ar¬
cade Capcom bien qu’elle soit
de bonne qualité risque de ne
pas vous monopoliser pendant
des nuits entières ; en effet, les
graphismes ne sont pas des plus
finis mais il faut noter que sur
CPC, l’animation est suffisam¬
ment rapide pour donner un in¬
térêt au jeu (ce qui n’est pas le
cas sur d’autres machines...).
Enfin, soulignons une superbe
musique de présentation qui est
peut-être éphémère par rapport
à la durée du jeu mais il ne faut
pas laisser les musiciens dans
l’ombre...
Garfield
The Edge
Arcad^Aventure
J e cherche après
Arlène, Arlène, oh
mon Arlène, je cher¬
che après Arlène mais
ne la trouve pas !... J’ai déjà
fouillé toute la maison
lorsqu’on m’apprend que ma
pauvre Arlène s’est fait ramas¬
ser et qu’elle se trouve à la Four¬
rière Municipale. Mais ce n’est
pas vrai ! Moi qui avait décidé
de ne pas quitter la maison
aujourd’hui, je vais être obligé
de me hasarder dans les rues de
cette ville inhospitalière afin de
trouver la Fourrière.
Vous reconnaîtrez que la condi¬
tion de chat est bien difficile ;
je dois côtoyer à chaque instant
le chien le plus bête du monde
Odie, et en plus de cela, quand
je n’ai pas faim, j’ai envie de
dormir !... Heureusement que
mon maître est là avec sa tasse
de café pour me permettre de
refaire surface ! En tout cas,
une chose est sûre, je dois
retrouver Arlène avant la fin du
jour et cela ne va pas être du
gâteau ! Tiens, à propos de
gâteau...
Garfield est adapté à partir
d’une B.D. qui, malheureuse¬
ment, n’est pas très connue en
France.
Les graphismes sont mignons
mais l’animation est un peu
molle et vous devrez être persé¬
vérant pour ne pas “mourir”
pour cause de grande fatigue
dès les 30 premières secondes...
ooax
BA/Ve P BS8A/
LOq/C/ELS
B ienvenue à bord de
votre CPC ; vous êtes
chaleureusemnet invité
à vivre l’histoire du
Livre de la Jungle quelque peu
revue et corrigée... En effet,
imaginez une superbe héroïne
blonde, musclée et armée d’un
fouet impressionnant. Enfant
abandonnée, elle a été recueil¬
lie par la bande de Renards qui
vit à Granath, monde apparte¬
nant à un univers parallèle au
nôtre et situé à des centaines
d’années lumière. Les sages de
cette tribu ont décidé de donner
des pouvoirs magiques à leur
protégée et elle peut, entre
autres, se transformer en
renard.
Vixen (c’est le nom de cette
“déesse”) est le seul être
humain ayant pu échapper à
l’assaut des dinosaures qui ont
tout détruit. 11 ne lui reste donc
plus qu’une seule chose à faire ;
arpenter la surface de la planète
avec son fouet magique pour
décapiter les ennemis et dévoi¬
ler les endroits où se trouvent
des têtes de renard qui lui per¬
mettront de se transformer. A
partir de là, elle peut se prome¬
ner dans les grottes et sous-sols
de Granath où elle obtiendra,
avec un peu de dextérité, le
Mega Fouet tuant tout sur son
passage d’un seul coup, d’un
seul ! ou les Mega Gems qui
augmentent le potentiel de
Vixen, une fois qu’elle se
retrouve en surface. Autant dire
qu’elle doit utiliser toutes les
qualités d’un renard : ruse et
intelligence...
A notre avis, Vixen va plaire
aussi bien aux grands qu’aux
petits ; l’ensemble des qualités
nécessaires à un bon jeu d’ar¬
cade sont présentes : bon choix
des couleurs, graphisme correct
et animation “tenant la route”
avec quand même une petite
restriction au niveau du scrol-
ling horizontal qui apparaît
quelque peu haché mais le résul¬
tat final mérite quand même
d’envahir vos écrans.
Desolator
us Gold
Arcade
U ne fois de plus, Kairos,
le Grand Satan a
frappé en enfermant
dans son château de
pauvres petits Peters sans
défense ; heureusement que le
grand Mac est là pour voler à
leur secours !
Vous pénétrez donc dans le pre¬
mier niveau du château avec
pour seules armes, votre coup
de poing redoutable et la possi¬
bilité de faire des sauts périlleux
pour passer au-dessus de cer¬
tains obstacles telles des bombes
par exemple. Chaque salle est
bondée : si ce ne sont pas des
petits bonshommes bleus cap¬
teurs d’énergie, c’est la fille de
Kairos qui tente de vous ralen¬
tir, heureusement il y a certains
éléments positifs qui vont vous
revigorer comme une capsule
d’énergie, un boomerang ou
une horloge qui va stopper
momentanément les ennemis
sans oublier les carrés stratégi¬
ques qui vous transportent ins¬
tantanément dans une autre
pièce ! Sachant tout cela, il ne
vous reste plus qu’à repérer les
miroirs sur les murs pour aller
les briser et délivrer ainsi les
Peters. De plus, lorsque vous
atteignez la dernière pièce d’un
niveau, il vous faut affronter
Kairos en personne (enfin si l’on
peut dire car il a le pouvoir de
se multiplier...) avant de pou¬
voir continuer votre progression
et votre mission de sauvetage.
Ce jeu de type Gauntlet est
satisfaisant tant au niveau du
graphisme que de l’animation ;
de plus, le nombre d’actions
possibles est suffisamment
grand pour éviter une trop
grande monotonie. Par contre,
il y a un phénomène que vous
n’apprécierez sans doute pas
plus que moi ; lorsque vous êtes
par exemple au niveau 5 avec un
bon score et que l’écran suivant
vous bloque soudainement dans
une situation sans issue, c’est
vraiment très désagréable. J’es¬
père seulement qu’il n’y a pas
trop de situations du même
type, ce serait désolant !
L
R
RENUMEROTATION
DES
PROGRAMMES BINAIRES
Régulièrement des petits programmes binaires
paraissent dans les revues informatiques. Ils
vous permettent d'améliorer vos propres
programmes en leur ajoutant des fonctions
difficiles, voire impossibles à obtenir en
BASIC. L’habitude des concepteurs aidant,
ils occupent le plus souvent la zone mémoire
comprise entre &A000 et HIMEM. Ceci
interdit la présence simultanée de plusieurs
d’entre eux en mémoire, car le dernier entré
écraserait, ou tout au moins chevaucherait,
ceux qui y sont déjà logés, empêchant leur
fonctionnement correct.
Le présent programme va rendre possible la
cohabitation de plusieurs programmes
binaires conçus initialement pour une même
zone mémoire.
FONCTIONNEMENT DU
PROGRAMME -
f l est impossible de faire fonctionner un programme
à une adresse différente de celle d'origine forsqu'il
tait appel a des routines ou des données situées dans la môme
zone. En cas de déplacement, il ne trouvera plus à ces adres¬
ses ce qu'i était censé y trouver ; d'où un disfonctionnement
couvant aller jusqu'au plantage irrémédiable.
Nous allons étudier le fichier binaire, instruction par instruc¬
tion, pour repérer les adresses et les données codées sur 16
bits. Si elles appartiennent à Iq zone occupée par le pro¬
gramme, elles seront modifiées en tenant compte de la nou¬
velle zone souhaitée. Le rôle des DATA est de remplir un
tableau de 256 variables V () contenant le nombre d'octets
nécessaires à I instruction considérée (de même rang).
Exemple : V(0) = 1 puisq^ue l'instruction codée 0 (NOP) occupe
v{ 17) = 3 puisque l'instruction codée
1/ ILD DE, DATA 16) occupe 3 octets.
Seules les opérations utilisant 3 octets permettant de définir
une adresse sont retenues, les autres seront ignorées.
I existe quelques cas particuliers constitués par des groupes
de plus de 3 octets (LD RP, (ADRESSE), LD (ADRESSE), RP
registres d index, etc.). Dans ce cas, c'est l'octet suivant qui
va nous renseigner sur la nature de l'instruction. Lorsque le
code ne correspond pas à une de ces exceptions, c'est la
valeur de la variable V qui est prise en compte et on passe
à I instruction suivante.
Les instructions RSX (celles dont le' nom est précédé du
signe ) vont bénéficier d'un traitement de faveur. Le pro¬
gramme binaire permettant d'intégrer ces instructions au
82
, mme,
charge-
Jean-Michel SOHIERê^
BASIC, contient le nom de celles-ci sous forme de DATA. Il
n est pas question, pour nous, de modifier ces données. Dans
un premier temps, nous chercherons les adresses de début et
de fin de ces noms. Ensuite la renumérotation se fera norma¬
lement pour tout ce qui se situe avant et après.
UTILISATION DU PROGRAMME^HB
• Commencez par un Reset : CONTROL-(-SHIFT+ESC
• Protégez la zone mémoire où sera chargé le fichier à modi¬
fier. Exemple : MEMORY &8FFF
[oÂrNÔS'ïlfi-'iW™"'"'' '' ^
• Si vous ne connaissez pas la longueur du progra
essayez de la trouver en faisant (dans le cas d'un chi
ment en &9000) ;
FOR X = &9000 TO &A700 : PRINT "&"'HEXS/X 41
PEEK(X):NEXT ,ncAÿiA,4),
Lorsqu'une longue suite de zéros apparaît dans la colonne
de droite, appuyez 2 fois sur ESC, puis notez la valeur hexa¬
décimale affichée en face du premier zéro. Cette valeur sera
pour vous I adresse de fin du programme.
• Lancez le programme BASIC RENUM
• Répondez aux questions concernant les adresses
• Sauvegardez éventuellement le nouveau fichier binaire.
REMARQUE I
La renumérotation ne doit concerner que le programme et lais¬
ser intacts les textes ou les données qui lui sont associés. Au
cas ou vous feriez le traitement de telles zones, il pourrait
s ensuivre quelques modifications dues au fait que notre pro-
gramme n a pas fait la distinction entre instructions et don-
nées. Si tel était le cas, aidez-vous d'un logiciel assembleur-
désassembleur pour effectuer les corrections.
20 '
fh»
RENUMEROTATION
m
30 '
Ht
DES PR06RAMCS
««f
40 'i
BINAIRES
jljlJl
50
60 CLStDIM V(255),ED(8)
70 ' ♦♦♦«■»»******##****«***#*«**»***4-»
80 nombre d'octets pour chaque instruction
90 ' *»««««««««««««««««*«««««««*«««««««
100 FOR x=0 TO 255;READ v(x):t€XT
110 FOR X=1 TO 8:READ A$;ED(X)=VAL("J(’'+A$)
120 NEXT
>LA
>LB
>LC
>LD
>LE
>RH
>LG
>LH
>LJ
>AV
>HT
>DJ
CPC n° 36- Juillet/Août 1988
13'-' Jh^h i.x. i.i.*. i.i« î* - . l.l.it-ti
' 1
710 t*«.*****t'«.«.***.***«.***************.>
PJ
■ 40 Di-Tm *. 71 i. 1.1.1. ^i • i • i ■ * • ; • i i
^ 1 - 1
uls 1
”27' ♦•*♦*♦ sauveqarde *♦♦♦♦
. P ■
150 DATA 2.3.7.1.1.1.3.1.1.1.1.1
Dh
T T
{
iL hTh '.v.à.*-»**!•-•*
■ DF
740 PF.IN':PRINT"V0ULE2 VOUS 5AUVEGARDEF i.O./N)
ï I
l'.j DhTA 1. l. 1.1.1. i. i. i. 1. i. 1. ;. i. 1. i. 1
'* ' !
750 GOSUB 930
'JD
ISO: DATA l.l.l.l.l.i.l.l.l.l.i.i.l.l.l.l
: Du
760 ;f xi='N" THEN END
■FN
140 DATA l.l.1.1.1.1.1,1,1.1.1.1.1.1.1.1
n,.
U •>
''''il ÎNPUT 'NOM DE SAUVEGARDE "i’iî
I.jO- DATA 1. 1 .1. 1 . i. 1.1. i. 1. i. 1.1.1. i. 1.1
l'L
■80 A=INS'F Nî."." A=0 THEN T$ = "Eîîi":DCT;
£ 2 .
RA
^Dh
'90
m:
21'0 DAT A 1,1.1.1.1. 1 .1. 1 . 1 .1.1,1.1.1... i
EN
soi' I' -EN ~î Z THEN 54'l E^SE F Tï=" ^ 'HE'-.'
^ T
i-'U u‘AiH
/DF
91.:. N$=i.EF’$iNî.A-l'
I4'j DATA
DO
.:2'.. ïF ..EN'Ni. F ’HEN E^'
■Ri
250 DATA 1 . 1 . 3 . 3 ,3.1.2.1.1.1,3.2.3.3.2.1
DH
3 '. 6 hVE liî-'."-Tt,B. u. t.ND
wA
Zcî'j' Dk t H 1 . 1 . W . ^ V-' » 1 * » 1 • 1 « i 1 - ■ - * • i ' - ■ -
DH
B40 PF.INT CHF.$(7j;GGT0 HZ
Ü*!
2'0 DATA 1 . 1 .3.1.3. 1 . 2 . 1 . 1 .1.3.1.3,2.2.1
DF
550 +♦♦♦*♦********♦♦♦*►♦♦♦♦♦♦*♦♦♦«■.»♦♦♦♦
TD
2 ’ 8 u jrtTA 1 . 1 .3, 1 . 1 . 1 ... 1 . i. i
UF
360 ♦♦ conversion en nomore positi* *♦
■ TE
3-0 DATA 43.53.s3,"3.4P.5B.o&.l^B
ti.
970 **+4+***+*#*4(#4t*»4»**«**+»**»*+»»*
•
3iX' liüDE 2:CLS
üG
eeO IF A'IO THEN A=65536*A
FW
310' A$-''ADFc33E ':P$=" DD ^^’OcRhI’I^IE "
-rr
890 RET'JRN
Æ
rhlNi hî; ' As.Tüti-LE DE DEBüi ï-i:
tF
9'00 ♦♦*♦♦***■*♦*♦*♦♦♦♦*♦**♦***♦•*♦**♦♦♦♦
RK
33ij INF'UT AîSOSUE S 8 i.';D=A
ü
910 ****** réponse Oui ou Non ♦*♦»♦♦
H fi
340 PRltlT Aî; ACTUELLE DE P IL F'$:
920 ♦**♦*♦*♦♦**♦♦♦♦*♦♦♦♦*♦♦♦*♦♦♦♦**♦♦*
.'TB
350 ÎNFLT A;5ü5üE 330 :F=h
ÜX
930 Xf=UFPEF:îaNf'.EY$)
RB
36v feint
"F
940 IF X$("N" OR V$/"G'‘ THEN 930
;-'XT
3^' PRINT Aî: 'NORHAlE DE DEBU'OF*;
F
950 FETURN
,. ZK
380 INFUT A:G03UB B3'.':N=A
■Ü3
960 '*♦♦♦♦♦♦♦•*♦♦♦♦*♦♦♦♦*♦*♦*♦♦*♦♦*♦*♦♦♦
TF
T’C F'FINT
■FE
970 ****** renumerotation ******
.■^G
40)0 PRINT "FUTURE '':A$:"DE DEBUT":P$:
■ rZ
960 ♦♦♦**♦♦♦♦****♦♦**♦♦♦*♦♦♦**♦**+♦♦**
Th
41'; IMPU''’ A:b05ü& 8 Bv:F=A
:üe
990 LOCATE 35.15:FPINT t:HF$(24);"ATTEMDE2
;CHFî(24
/ rR
420 FPIN'f"3'hBIT-IL D UNE EXTENSION RSc lO'N) ■"
VF
l'O'OO FOR A=DO TO FO
'■LA
430' L=F-D:fi05U& 930
NT
1010 X=PEEK(A):IF X DO THEN 1060
■ AV
440 IF !'Î="N" THEN DO=D:F(i=F:GDTO 700'
/DF
1020 ■ ♦♦*♦**♦♦♦ code ■Î’(ED ♦♦*♦♦*♦♦♦
/XF
450' ♦♦♦♦♦♦♦♦♦♦♦iHi+**ii'*ii'******+**4*****
>RK
1030 FOR 1=1 TC 3
;BK
4o0 ♦♦♦♦♦*♦ extensions RS)( ♦♦♦*♦♦♦
'TA
1040 IF PEEK(A+i)=ED(r) THEN A=Atl:V(X;=3:G0T0 1160
:>uy
470 ■
, TB
1050 NEXT:V(X)=2:G0T0 1260
:x'o
480 PAINT A$: "NORMALE D'INITIALI5ATI0N'';FÎ:
./FA
1060 IF X':/?<DD ANC X-OS^.FD THEN 1140
lÆ
490 INPüT A:505UB 380;IN1T=(N-A)+D
>CC
1070 ■ **♦♦♦ registres d'index *****
.TVA
500 calcul début des noms ♦*♦♦♦
;RF
1080 A=A+1:X=PEEK1A):ÎF X'.5<34 THEN 1010
/FD
510 FQF. y=INIT TO F
.NU
1090 IF X=&34 OR X-3.35 THEN A=A+2:G0T0 lOlû
HF
520 IF PEEKiïlX'l THEN 600
■TM
1100 IF X=S.36 THEN A=AF.:50T0 1010
■AB
530 DT16=PEEK'V+D + 'PEEf
:'BB
1110 IF X=?(lB THEN A=A*3:G0T0 1010
/AH
540 DTit.=Dt(DTl 6 -N)
.-NC
1120 IF X:;'?£0 THEN A=A-fl:B0T0 1010
:.'AQ
550 A=PEEK (DT16) + (FEEK 'IDTlo+i ) *256)
..'CL
1130 IF X;'-î,45 THEN A=A+2:G0T0 1010
/AE
560 GOSUB 880:ADD=A
>NQ
1140 IF V(X) ';>3 THEN 1260
■>RC
570 IF ADD<N OR ADD)N+L THEN 600
'TB
1150 **♦♦*♦ cas normaux ******
.>XK
580 2=ADD-N:B=P+2:I0=ÎNTlB/256):J0=B-!I0*256)
.>PU
1160 C=PEEf'.(A+1 ) + (PEEK(A+2) *256)
>20
590 POLE DT16+1.0:PQKE DT16,0:GQT0 üCO
...-FC
1170 IF C:N or C.>N+L THEN 1260
;WV
600 NEXT
"EB
i 160 Z=C-N: B=P+Z: I=INT (B,/256) : J=B- (1*256)
>KK
ûlO PRINT CHF:$(7): "VECTEURS RSX INTROUVABLES ":END
13C
1190 POKE A+2,I:POKE A+1.J
/UK
620 *♦ f-enumerotation jusqu au 1 er nom ♦»
RJ
1200 IF XOMF THEN 1260
>011
630 D0=D:F0=D+2-l:GOSUB m
;.>VR
1210 ' *♦♦♦***♦♦ code SiDF «**♦*»*♦♦
>X 6
640 POKE DTl6tl.I0:PQKE DTlô.JO
2L
1220 E=D+2:C=FEEK(E)+(PEEK(E+1)*256)
'•DH
650 ' ♦♦**** calcul tin des noms ******
.>TB
1230 IF C<N OF: C/N+L THEN 1260
>WR
660 FOR A=D+2 TO F:IF PEEK(A)=0 THEN 690
/FV
1240 Z=C-N:B=P+Z;I=INT(B/256):J=B-(I*256)
/KG
670 NEXT
,EJ
1250 POKE E+1.1:POKE E.J
/RB
680 ♦♦*♦ renumerotation de la tin ♦**
.'TE
1260 A=A+V(X)-1
>XK
690 DO=A+l:FO=F
>2G
1270 NEXT
>LB
700 GOSUB 990
/JE
1 1280 RETURN
>FE»
CPC n°36- Juillet/Août 1988
83
T A
E
L
R
COMPILATION
f l y a longtemps, c’était
au temps de la
préhistoire, le gibier et
les disquettes 3 pouces étaient
très rares. Les précieuses
petites plaquettes noires
s’échangeaient alors contre 70
parfois 80 silex ; le prix d’un
kilo de mammouth 1er choix.
Il est bien évident qu ’à ce
taux, chaque programme
sauvegardé devait en valoir la
peine. C’est sûrement à cette
époque qu’est née l’idée de la
compilation.
La compilation est un système qui permet
de réduire très sensiblement la taille d'un
fichier binaire. Il est surtout bien adapté
aux pages écran qui, sur une disquette,
prennent 17 K. Une fois compilée, la
taille de la même page écran ne fera que
5 ou 6 K.
Les programmes que je vous propose
permettent également la compilation de
fenêtres. Ceux d'entre vous qui écrivent
des jeux d'aventure multicadres sauront
en tirer le meilleur parti.
Comment compile-t-on un programme ?
Nous savons qu'une page écran occupe
&4000 octets de l'adresse &C000 à
l'adresse &FFFF. Sur ces &4000 octets
beaucoup ont la même valeur. Tous les
octets représentant le fond du décor ont
la valeur "0".
Le principe de la compilation consiste à
compter le nombre d'octe/s qui se suivent
et dont la valeur est identique.
Premier cas. L'octetn° 1 est différent de
l'octet n° 2. Il va être recopié tel quel
dans le fichier compilé et nous allons com¬
parer /e n® 2 avec les suivants.
Deuxième cas. L'octetn° 2 et les dix sui¬
vants ont la même valeur. Le programme
de compilation va charger dans le fichier
compilé un premier octet avec une valeur
témoin pour indiquer qu'il y a compila¬
tion. Un deuxième odet contiendra le
nombre de répétitions. Ici, nous aurons
1 1 (octet n° 2 plus les dix suivants).
Enfin un troisième octet contiendra la
valeur de ces 11 octets.
Comme vous le voyez avec seulement 3
octets, nous en avons compilé 11. Dès
que 4 octets se suivent en ayant la même
valeur, la compilation nous fait gagner
de la place.
Deux cas nous en feront perdre.
Si nous n'avons que deux octets identi¬
ques qui se suivent ou si un octet a la
valeur du témoin. Là aussi, il nous fau¬
dra 3 octets pour en compiler un seul.
D'où l'intérêt d'avoir une valeur témoin
ayant peu de chance de se trouver dans
votre dessin. Pour ma part, dans mes
programmes. J'ai utilisé la valeur 103.
C'est une configuration de pixels assez
rare. Pour vous en convaincre, faites
dans les 3 modes ;
FOR H = &C100 TO &C200:POKE
H,103:NEXT
10 REH EN
20 REM : : >EF
30 REM : COMPILATION BASIC : XÜ
40 REM : : >EH
50 REM : : : ! : : : : : : : : ; : : : : : : : : : : : ; ; : : : î ; ET
60 MEMORY J-IFFF >GA
70 INP; 0,0; INK 1.24:MODE 2 >TE
80 DIM ENCRE (16):NIND0W #1,1,78,25.25 -EX
90 CLS #1:INPUT #1,"MODE "; MO >XV
100 POKE 5(3000, MO >Ly
110 IF M0=0 THEN NBErC=15:G0T0 140 >BZ
120 IF M0=1 THEN NBENC=3:G0TQ 140 >AU
130 IF M0=2 THEN NBENC=1 ELSE 90 >YV
140 FOR H=0 TO NBENC >NH
150 CLS #1:PRINT #1,"NUMERO DE L’ENCRE”;:PRINT #1,H;:IN >KY
PUT #1.X
160 ENCRE (H) =X: POKE ?<3001+H.X:NEXT >DJ
170 as #1;INPUT #l."htt]M DU DESSIN A COMPILER ";F$ >VE
180 MODE MO:FOR H=0 TO NBENC >WE
190 INK H,ENCRE(H):NEXT >TK
f 200 LOAD "!"+F$,!<C000 >MD
210 ecran=&C000 ' BE
220 Pack=&3020 )0C
230 temoin=103 >ZK
240 finecrân=!(FFA0 >NF
250 a=PEEK(écran):K=0:coiiiPteur=0 :?CN
260 IF a=103 THEN 340 >NN
270 >;=x+l;b=PEEK(ecran+x) ;.>VJ
280 IF a=b THEN co(iipteur=coinpteur+l:G0T0 270 >PD
290 IF cofflPteur=0 TÆN 330 :.>UP
300 POKE pack,temoin:P0KE pack+1.compteur:POKE pack+2.â .-'DG
310 pack=pack+3:ecran=ecran+coiiipteur >KA
320 IF ecran=finecran OR ecran>finecran THEN 360 ELSE 2 >BE
5(<
330 POKE Pâck,a:pack=pack+I;ecran=ecran+1:G0T0 320 )XC
340 POklE pack, témoin:POKE pack+l,l:P0KE pack+2.103 >WH
350 pack=pack+3:ecran=ecran+l:BQT0 320 >HP
360 iongpac=Pack-!<3000 /RY
370 lq*=HEX*(langpac):P0KE 5(3012,VAL("S("+RIGHT$(lq»,2)) .>AX
380 POKE 5(3013,VAL("5("+LEFT$(lci$,2)' >CW
390 MODE 2;CLS:INK 0,0;INK 1,24 >YA
400 LOCATE 1.1:PRINT "COfPILATION TERMINEE...." >TB
410 LOCATE 1,3:PRINT "DEBUT DE COMPILATION EN 5(3000" >ïA
420 LOCATE 1,5:PRINT "LONGUEUR DU FICHIER ^";;PRINT k€X >RL
é KLONGPAC)
84
CPC n” 36- Juillet/Août 1988
BASIC/BINAIRE
•Claude le MOULLEC
Un autre problème peut se présenter. Le
deuxième octet contient le nombre d'oc¬
tets identiques. Ce nombre ne peut être
supérieur à 255. Un dessin avec de gran¬
des surfaces de la même couleur peut
avoir cette configuration. Mais cela est
très rare. Si vous pensez que votre des¬
sin est dans ce cas, faites :
PLOT 640,l,hDRAW 640,400
Grâce à ce trait, vous n'aurez jamais plus
de 80 octets identiques à se suivre.
Voici pour ce qui est de la compilation.
Qui ait compilation dit aussi décompila¬
tion. C'est ce que nous allons étudier
maintenant.
Le programme de décompilation va lire
le fichier créé par la compilation. Si l'oc¬
tet est différent de 103, celui-ci va être
affiché tel quel à l'écran. Si sa valeur est
103, le programme va afficher à l'écran
autant d'octets que la valeur contenue
après 103. Ces octets auront tous la
valeur contenue dans le deuxième octet
après 103.
Voici succinctement expliqué le principe
de la compilation/décompilation.
Je vous ai écrit deux programmes de
démonstration, l'un en BASIC, l'autre uti¬
lisant une routine en assembleur.
LE PROGRAMME BASIC
Ce programme n'est là que pour bien
vous faire comprendre le principe expli¬
qué plus haut. Les variables que j'ai uti¬
lisées sont très parlantes. Néanmoins, ce
programme ne compile que des pages
écran entières. De plus, malgré la rapi¬
dité du BASIC Amstrad, la compilation
prend plus de trois minutes et la décom¬
pilation à peu près autant.
LE PROGRAMME BINAIRE
Ici, la compilation et la décompilation ne
prendront pas plus de deux secondes et
il vous sera possible de travailler sur des
fenêtres. Le fichier compilé débute à
l'adresse &3000 mais le premier octet
compilé seulement à l'adresse &3020.
Ces 32 octets contiennent tous les para¬
mètres nécessaires au programme de
décompilation (mode, couleurs, données
de la fenêtre, etc.).
La différence entre un écran complet et
une fenêtre réside dans le fait que pour
l'écran tous les octets se suivent de façon
linéaire, tandis qu'avec une fenêtre, le
premier travail du logiciel sera de retrou¬
ver cette forme linéaire en transférant
tous les octets de la fenêtre à partir de
l'adresse &6000. La suite sera identique
à la compilation d'un écran sauf qu'elle
débutera en &6000 et non plus en &C000.
Pour le retour, la décompilation de la
fenêtre se fera, elle aussi, en &6000 puis
un sous-programme biriaire fera le trans¬
fert à l'écran.
Vous voici en possession d'un outil per¬
formant, essayez d'en faire le meilleur
usage.
Bon courage et à vos claviers...
430 LOCATE "MOM DE SAUVEGARDE DE CETTE COMPI /WA
LAT™ "îNOMt
440 SAVE "‘"+MOM$,B,S<3OO0.L0Ni3PAC /AV
450 END >TC»
10 REM >CA
20 REM : s /ED
30 REM ; DEC0^«=ILATI0N BASIC : /ZA
40 REM ; ; >EF
50 REM CE
60 MEMORY jiZFFF /GA
70 MODE 2:INK 0,0:INK 1,24 >TH
80 LOCATE 1,1:INPUT “NOM DU DESSIN A DECOfff’ILER ";N0M» /BH
90 LOAD "'"+NOM$,Î(3000 >PD
100 M0=PEEK (Î!3000 ) : MODE >UH
110 FOR H=0 TO 15;X=PEEK(Ï(3001+H):INK H,X:ICXT >P2
120 ecran={(C000 >BE
130 pack=l(3020 , )QC
140 teiioin=103 >ZK
150 finpack=8,3000+<PEEK(&3C12)-f256*FEEKiî.;3013;i >PU é
160 a=PEEK(pack)
170 IF a=i03 THEN 210 ElSE 130
130 F0KE écran,a
190 ecr àn=ec ran+i : pacK^t' ac c * 1
200 IF Pâck=Finpàck OR pack/t inpack THEN 280 EL3E 160
210 corapteur=PEEK(pack+l)
220 vaieur=PEEK(pâck+2)
230 x=0:F0R h=l TO compteur
240 POKE ecrân-t'X,vâleur
250 x=x+l:NEXT
260 pack=pack+3:Bcran=ecrân+compteur
270 GOTO 200
2B0 CALL «(BB1B:END
/LD
/Z2
>WE
>WF
>TG
/Wh
>UR
/DJ
>HE
>YH
>MY*
10 REM .>FJ
20 REM : : >EG
30 REM : COMPILATION BINAIRE : >ZL
40 REM : : /EJ
50 REM >FN
60 hEMORY îi2FFF >GA
70 FOR h=8(A000 TO ?(A100:READ A$:P0KE H,VAL("?!"+A$):NEXT >YM
CPC n ° itf - Juillet/Août 1988
85
80 I?»: 0.0: INK 1,24:MODE 2 >TF f
90 DIM ENCRE (16):WINDOW #1,1,78,24,25 >EX
IfjÔ CL3 #1:INPUT il."MODE ";M0 >XT
110 POII Se30O0,M0 >LZ
120 IF MO=<0 THEN NBENC=15:SOTO 150 >BB
130 IF M0=1 THEN NBENC=3:eOTO 150 >A«
140 IF M0=2 THEN NBENC=1 ELSE 100 >ZR
150 FOR H=0 TO NBENC >NJ
160 CLS il:PRINT #1,"NUMERO DE L'ENCRE"::PRINT #1,H;:IN >KZ
PUT #1,X
170 ENCRE(H)=X:P(J<E !(3001+H,X:NEXT >DK
1&) CLS #1:PRINT #1,"ECRAN COMPLET OU FENETRE (E/F >E0
) ?"
190 A$=INKEY$:IF A$=''" THEN 190 >XC
200 A$=UPPER$(A$):IF A$="E" THEN 230 >BJ
210 IF A$="F" THEN 370 B.S. 190 >VH
220 REM :::: COMPILATION D'ECRAN :::: >VJ
230 CLS ihINPUT #1, "NOM DU DESSIN A COMPILER ":F$ >VB
240 MODE MO:FOR H=0 TO NBENC >WB
250 INK H,BCRE(H):NEXT >TG
260 LOAD "'"+F$,tCOOO >NB
270 CALL &A000 >JG
280 CLS:MODE 2:L0CATE 1,1:PRINT "COIff'ILATION DE ";Fi;" >IW
EFFECTUEE..."
290 LOCATE 1,3:PRINT"DEBUT DE COt^ILATION EN î(3000’ >YY
300 LOCATE 1,5:PRINT"L0NGUEUR DU FICHIER i"; >t|J
310 LGFICH=(PEEK(Î(A00E)+256 *PEEK;(?cAOOF))-?(3OOO >PB
320 PRINT HEX$(LGFICH) >RQ
330 LOCATE 1,10:INPUT "DONNEZ UN NOM A CEHE COMPILATIO ; MN
N POUR SAUVEGARDE "îFC*
340 SAVE *!"+FC*,B,8(3000,LGFICH >V0
350 END /TB
360 REM ::: COMPILATION DE FENETRE :;: >FD
370 INPUT #l,”PARA^ETitt3 COMME POl^ UNE WINDOW : (EX 10, >ZE
20,4,8)";A,B,C,D
380 IF M0=0 THEN X=4 >Ng
390 IF M0=1 T'HEN X=2 >N0
400 IF M0=2 THEN X=1 >NG
410 DEPTRANS=î£0O0+(C-l)*B0+(A-l)*X:At=HEX$(DEFTRANS) >ZQ
420 NBLIGNE=((DH)-C)*8 :>RD
430 QCTRANS=((B+1)-A)»X >RP
440 FINTRANS=(NBLIGNE*OCTRANS)+!e6000:B$=t€X$(FINTRANS) >DR
450 PIXE îi3016,VALCJ("+RIGHT$(B$,2)) >CZ
460 POKE {t3017,VAL("«("+LEFT$(B*,2)) >BF
470 POKE ltA007,NBLIGNE:POKE 8(3019,NBLIGNE >KA
480 POKE 8(AÛ08,0CTRANS:P0KE 8(3018, OCTRANS >LB
490 POKE 8(A003,VAL("8'"+RIGHTJ(A$,2)):P0KE 8(3014,VALC'i" >QP
+RIGHTÎ(A$,2))
500 POKE 8(A004,VAL("8("+LEFT$(A$,2)):P0KE 8(3015,VAL("8("+ >MF
LEFT$(A$,2))
510 INPUT #1,"N0M DU DESSIN A COMPILER ";F$ /NN
520 MODE MO:FOR H=0 TO NBENC >WC
530 IN8: H,ENCRE(H):NEXT >TH
540 LOAD "!’'+F$,8(COOO /NC
550 CALL 8(A0D0:REM TRANSFERT DE LA FENETRE EN 8(6000 >TL
560 CALL 8(A000:REM COW’ILATION >ZP
570 GOTO 280 >ZJ
580 REM ::::: DATA DE LA RIXJTIÆ :::: /CD
590 DATA C3,12,AO,œ,00,00,60,00,00,00,CO,AO,FF,00,20,3 >UC
0,01,ÛO,3A,11,30,FE,01,20,OE,21,00,60,22,09,AO,2A,16,30
,22,OB,AO,OO,OO,2A,O9,A0,7E,FE,67,C2,3A,AO,23,22,O9,AO,
CD
600 DATA A0,A0,C3,66,AO,23,46,B8,28,OE,22,09,A0,2A,0E,A >WK
0,77,23,22,OE,A0,C3,66,AO,32,ll,AO,F5,3A,10,A0,3C,32,10
,A0,Fl,0O,23,46,B8,CA,50,AO,22,O9,AO,CD,B6,A0,CD.83,A0,
3A
610 DATA 0D,A0.FE,Ol,CA,79.AO,3E,01,32,10,A0,C3,27,A0,2 >XQ
A,OE,AO,22,12,30,C9,00,00,00,2A,09,AO,ED,5B,OB,AO,7C,BA
,CA,9O,A0,C9,7B,BD,F2,96,AO,C9,21,OD,AO,3E,Ol,77,C9,OO,
00
620 DATA 00,2A,0E,A0,3E,67,77,23,3E,01,77,23,3£,67,77,2 >UU
3,22,OE,A0,C9,0O,0O,0O,2A,0E,A0,3E,67,77,23,0O,3A,10,A0
,77,23,00,3A,11,AO,77,23,22,OE,AO,C9,00,00,00,2A,03,A0,
ED
630 DATA 5B,05,AO,3A,07,AO,47,C5,E5,3A,08,AO,47.7E,12,1 >PZ
3,23,10,FA,El,CD,26,BC,Cl,10,ED,3E,01,32,11,30,09,00,00
, 00, iXi, 00,00,00,00,00,00,00,00,00#
k
10 REM >EN
20 REM : : >ef
30 REM : DECOMPILATION BINAIRE : >BU
40 REM : ; >EH
50 REM :::::::::::::::::::::::::::::: >ET
60 MEM(KY 8(2FFF >GA
70 FOR h=8tA100 TO 8(A1B0:READ a$:POKE h,VAL("8("+â$):NEXT >YH
80 MODE 2:INK 0,0:INK 1,24 >TJ
90 LOCATE 1,1:INPUT "NOM DU FICHIER A DECOMPILER ";NOM$ >DH
100 LOAD "!"+NOH$,8(3000 >PV
110 MO=PEEK (8(3000): MODE »o >VA
120 FOR H=0 TO 15:X=PEEK(8(3001+H) : Ut; H,X:NEXT >PA
130 CALL 8(A100:REM DECOMPILATION >BH
140 CAa 8(BB18:END >HT
150 DATA C3,0D,A1,00,C0,0A,F,20,30,00,00,00,00,3A, 11,3 >VA
0,FE,Ô1,C2,24,A1,21,00,60,22,03,A1,2A,16,30,22,05,A1,00
,00,00,2A,07,A1,ED,5B,03,A1,7E,F,67,CA,41,A1,12,13,ED,
53
160 DATA 03,A1,23,22,07,Al,C3,4F,A1,00,00,00,23,46,23,7 >WL
E,12,13,10,FC,C3,33,A1,00,00,00,CD,6C,A1,3A,09,A1,FE,01
,CA,5D,A1,C3,24,A1,3A,11,30,F,01,C2,68,A1,CD,89,A1,C9,
00
170 DATA 00,00,2A,03,A1,ED,5B,05,A1,7C,BA,CA,79,A1,C9,7 >HA
B,BD,F2,7F,A1,C9,21,09,A1,3E,01,77,C9,00,00,00,2A,14,30
,11,00,60,3A,19,30,47,C5,E5,3A,18,30,47,1A,77,13,23,10,
FA
180 DATA El,CD.26,BC,Cl,10,ED,C9,00,00,00,00,00,00,00,0 >EB
86
CPC n" 36- Juillet/Août 1988
AMSLETTRES
Patrice SCHOUMACHER
Ce programme permet à partir d’un menu
principal (par inversion vidéo) de choisir
entre 12 écritures différentes, c’est-à-dire une
redéfinition totale du clavier.
AMSLETTRE permet aussi de choisir entre 4
tailles différentes de lettres et cela en fonction
du mode écran dans lequel on se trouve, soit
en fait 3 modes (0, 1, 2) x 4 (tailles) = 12
tailles différentes.
UTILISATION DU PROGRAMME
Ü ne meilleure gestion de son ordinateur et de
l'imprimante.
- Création de ses propres pages de présentation pour
des logiciels personnels.
- Rédaction de titres ou d'en-têtes, si l'on veut par exem¬
ple faire un journal ou un dossier quelconque.
L'un des avantages certains est que l'on peut utiliser
séparément des fichiers (qui redéfinissent les lettres) pour
ses propres logiciels d'aventure.
POUR OBTENIR UN FICHIER BINAIRE
Taper le programme BASIC correspondant. Les instruc¬
tions pour savoir sous quel NOM il faut le sauver en
BINAIRE figure sous forme de REM (remarque) au début
de chaque programme BASIC.
Exemple : taper le programme BASIC, faire RUN puis :
SAVE "Nom du fichier",B,40700,2048
ORGANISATION DU PROGRAMME AMS-
LET.BAS (PROGRAMME CENTRAL)
Avant tout, je tiens à préciser que seule ia routine per¬
mettant d'obtenir des caractères de tailles différentes
n'est pas de moi, elle est parue dans CPC n® 13.
J'ai repris cette routine car elle permet en fait de recréer
un "zoom" ce qui rend le programme plus crédible.
Liste des variables ;
PPVariable pour les couleurs du fond de l'écran
BB Variable pour les couleurs du bord de l'écran
EEVariable pour les couleurs de l'écriture
MD Variable pour le MODE (0, 1, 2)
Ml Variable pour les minutes.
A, K, KR, TB, TA, CH, KR$
Variables pour les inversions vidéo et le déplacement
TAI Variable taille.
A$ et B$ Variables pour le mot entré.
Y, Y1, Y5, Y6
X, XI, X2, X5, X6
affichage fenêtre
NOMM$ Variable pour le nom de sauvegarde ou de
chargement de la page écran.
AbCdEfGhI4 RbCdEf GhI js
RbCdEfGhlji flî><îô£l«3>Jù6nbCdEFGhIii .\SSS
^bCdE;FGhIq2 AbCdKrChl j
RbCdEPGhlIi3 abCdEPGbïJs RbCdEPChI12
flbCdEfGh I j4
Mode 1 ; taille normale, 12 écritures différentes.
Mode 1
Mode 2
CPC
EK CPC CPC [E
56 7 8
CPC
12
CPC n"" 36- Juillet/Août 1988
87
LE FONCTIONNEMENT
MENU PRINCIPAL
Le choix des possibilités se fait avec les curseurs flèches
? ui sont indiqués par une inversion vidéo.
os possibles : le choix est fait avec les flèches puis
[ENTER] sauf pour certaines instructions où il faut
appuyer sur les touches du clavier.
:xemple, pour les couleurs :
B] POUR LE BORD DE L'ECRAN
y POUR L'ENCRE
F] POUR LE FOND
M] POUR LE MODE CHOISI (0, 1, 2)
Q] POUR QUITTER AMSLETTRE
MODE OPERATOIRE
Se placer sur [NOM] puis [ENTER], enfin écrire le mot
dons l'espace réservé.
MODEl : 19 lettres possibles
MODE 2 ; 29 lettres possibles
MODE 0 : 9 lettres possibles.
1
U
Après, choisir la taille du MOT en se plaçant sur [NOR]
puis [ENTER].
- 1 FOIS
- 2 FOIS
- 3 FOIS
- 4 FOIS
ENTER'
ENTER'
ENTER
ENTER'
= double largeur.
= double taille.
= double hauteur.
= normal.
Enfin se placer sur l'un des 12 types d'écritures puis
[ENTER] (si le type d'écriture est déjà chargé, appuyez
directement sur [COPY]).
MODE DESSIN
Le déplacement du mot se fait grâce aux curseurs flèches.
Si l'emplacement choisi convient, appuyez sur [COPY] =
mémorisation de la page écran. Si l'on veut charger
quelque chose sans mettre en mémoire la page écran
(taille, mode, mot) appuyer sur la barre espace ce qui
provoque un retour au menu. Si on veut effacer tout
l'écran, appuyer sur [CLR].
AHENTION
Dans ce numéro, vous ne trouverez que 2
listings correspondant aux caractères
"ELARGIE" et '^ATA". Les listings suivants
seront publiés dans le prochain CPC.
10 ' *» version v3.2 ♦* ;LA
20 • *♦ SCHOUMACHER P >LB
30 CLEAfi’ >DB
40 MODE 1 >BG
K PP=26:bb=13:ee=l >NB
60 SYMBOL AFTER 0 >MQ
70 dâtu(n=INT(TIME.'300) >TY
80 INK 0.3 :INK. l.IhBORDER 13:FEN 0 >BF
90 PAPER 1;PEN 2 >FE
100 LOCATE 8,5:PRINT A H B L E T T R E ! ♦*’ >FL
110 a=ji8000:FOfi i=100 TO 400 STEF' 10:5=0 >EW
120 FOR j=l TO 10 >BG
130 READ x«;xx=VAL("!(’'+x$):P0KE a.xx;s=s+xx:a=a+l >VD
140 NEXT j >|\|E
150 READ xxtIF sOxx THEN PRINT"Erreur en ligne";i:END >GG
160 NEXT i >NF
170 CALL «<8000 >H6
180 CLS tLOCATE 8,12:PRINT"Double taille initialisée", >00
CW$(7)
190 FOR 1=1 TO 500: NEXT I;flii=0;(iid=l:GOT0 530 >LA
200 DATA *«*♦**♦*♦«* >RC
210 DATA 2a,d4,bd,22,2b,80,01,13,80,21,829 >HM
220 DATA Of,80,c3,dl,bc,00,00,00,00,21,76B >GG
230 DATA 80,c3,2d,B0,c3,34,80,c3,3b,80,1253 >JR
240 DATA c3,42,80,44,cc,44,c8,44,d4,53,1292 >JF
250 DATA d4,00,c3,ff,ff,21,49,80,22,d4,1397 >JV
260 DATA bd,c9,21,97,80,22,d4,bd,c9,21,1371 >JR
270 DATA ce,80,22,d4,bd,c9,2a,2bi80,22,1217 >JV
280 DATA d4.bd,c9,f5,e5,le,02,cd,a5,bb,1665 >KX
290 DATA 3e,19,cd,5a,bb,3e,ff,cd,5a,bb,1368 >KH
300 DATA 0e,08,06,04,56,af,cb,4b,20,0e,617 >iC
310 DATA cb,22,cb,22,cb,22,cb,22,18,04,976 >HU é
♦ 320 DATA cfa,27.cb,27,cb,22.30.02,f6,03.1020 ,;JF
330 DATA 10.f4.cd.5a,bb.23,0d,20,db.3e,1103 >J6
340 DATA ft,el.d5,e5,cd,2a,80,el,dl,ld,1760 >KW
350 DATA c3,3e,09,cd,5a,bb,fl,24,e5,18,12B3 >JC
360 DATA b6.f5,2d,e5.1e.02,cd,a5,bb.3e,1352 .>KR
370 DATA 19,cd,5a,bb,3e,ff,cd,ja,bb,0û.l312 >1<:A
380 DATA 04.cb,4b.20,04,23,23,23'i23.7e.584 >HF
390 DATA cd,5a,bb,cd,5a,bb,23,10,'f6,3e,1323 >KB
400 DATA ff,el,d5,e5.cd,2a,30.el,2c,dl,1775 >KZ
410 DATA Id,c8,fl,e5,13,ce,f5,2d,e5,le.l47B >KW
420 DATA 04,cd,a5,bb,3e,19.cd,5a,bb.3e.ll92 >KD
430 DATA ff,cd,5à,bb.cb,43,28,04,23.23.1121 )JD
440 DATA 23,23,0e.04,06,04.56,7b,fe.03,564 >HL
450 DATA 30,08,cb,22,cb,22,cb.22,cb.22.1004 >Jü
460 DATA af.cb,27,cb,27,cb,22,30,02,f6,1192 >JL
470 DATA 03,10,f4,cd,5a,bb,cd,5a,bb.23,1262 >KC
480 DATA 0d,20,d9,3e,ff,el,d5,e5,cd,2a,1493 >KH
490 DATA 80,el',dl,cb,43,c2,21,81,2c,7b,1355 >JG
500 DATA fe,03,c2,2e,81,3e,09,cd,5a.bb,1179 >KD
510 DATA 2d,24,fl,ld,c8,f5,e5,lB,9e,00,1207 >JN
520 '♦***♦*♦*♦♦♦««*♦*♦«♦*«»#»* DECOR ***♦#*♦♦♦♦* >RH
530 IST
540 INK 0,ee:INK l,pp:B0RDER bb >ZX
550 MODE 2: CALL «<8803 >PL
560 MOVE 85,269:DRAW 537,269:DRAW 537.322:DRAW 85,322:D >KE
RAW 85,269
570 MOVE 76,173:DRAW 4Û2,173:DRAW 402,195:DRAW 76,195:D >KJ
RAW 76,173 'bas
580 MOVE 76,204:DRAW 500,204:DR«i) 500,173:DRAW 586,173: >NR
DRAW 586,258:DRAW 500,258:DRAW 500,226:DRAW 76,226:DRAW
76,204
590 MOVE 20,45:DRAW 115,45;DRAW 115,67;DRAW 20,67:DRAW >DB
88
CPC n " ié - Juillet/Août 1988
20.45 ' dep
600 MOVE 164,45:DRAW 443.45:DKAl«i 443.è7;DF;AW 164,67:DRA /GH
W 164,45 'esp
610 MOVE 509.45:DF;hW 554.45:DRAW 554.67:DRA« 500,67:DRA >PD
K 50(i,55;DRAW 509.55: DRAW 509.45 'ent
620 MDVE 508,109:DRAW 547,109:DRAW 547,130:DRAW 508,130 >NT
:DRAW 508,109 'cop
630 LOCATE 29.2:PRINT AM3LETTRE >TF
640 LOCATE 5,3:PRINT STRING$(73.CHR$(154)):LOCATE 5,16: >I1X
PRINT STRING$(73,CHR$(154))
650 FOR 1=4 Tü 15;L0CATE 4,I;PRINT CHR$(149):LOCATE 78, >FE
I:PRINT CHR$(149);NEXT I
660 LOCATE 4,3:PRINT CHR$(150):LOCATE 70,3:PRINT CHR$(1 /DE
56)
670 LOCATE 4,16:PRINT CHR$(147):LOCATE 78,16:PF:INT CHR$ /FE
(153)
680 LOCATE 20,18: PRINT STRIN6$(38,CHR»(154)):L[]CATE 19 >JJ
,18:PRINT CHR$(147):LOCATE 58,iB:PRINT CHF:$( 153):LOCATE
19,17:PRINT CHR$(149):LOCATE 58,17:PRINT CHR$(149)
690 LOCATE 19,16:F'RINT CHRS(158)
1(158)
;L0CATE 58,16:PRINT CHR
>GA
700 LOCATE 34,10:PRINT "Heure :
tt
>BU
710 LOCATE 22,22;PRINT "
II
ESPACE POUR REVENIR
>DM
720 LOCATE 27,14;PRINT"N0R"
>WZ
730 LOCATE 20,17;PRINT"!!iots :";
N
II
>G2
740 LOCATE 38,14:PRINT "*♦
tHt"
>CR
750 LOCATE 4,22:PRINT "déplacement"
>HT
760 LOCATE 9,18: PRINT CHF»(240):
iLOCATE 9,20:PRINT CHR$(
>EJ
241)
770 LOCATE 7,19:PRINT CHF$ (242) : LOCATE ll,19:PRIf4T CHR$ >FX
(243)
780 LOCATE 65,18:PRINT "COPY":LXATE 60.20:FRINT"iiiise e /VO
n mémoire"
790 LOCATE 65,22:PRINT "ENTER":LOCATE 62.24:PRINT"pour >RE
valider"
800 ’***#♦*♦*#**♦**♦•»#*♦**#*»♦*»♦♦**♦ TEXTE ***** /RJ
44 JL JL JL JC JLJL^ JL JL
T WT T T T w IMi Hjfjr «A ftTiR T» T
BIO k=l:kr=4:tb=12:a=243:ch=0:t=5:TAI=l:a4=" "
820 X=10:Y=12:X2=20;ii=0
a30 DIM kr*(4,4)
840 kr$(l,l)="elargie":kr$(1.2)="d
ue'';kr$(l,4)="Pin"
850 kr$(2,l)="(noderne":kr$(2,2)="m
al":kr$(2,4)="digital"
660 kr$(3,l)="nouveau":kr$(3,2)="q
que":kr*(3,4)="reduit"
870 kr$(4,l)="mot5":kr$(4.2)="tail
r«(4,4)="sâve"
880 LOCATE 12,6:PRINT "élargie
othique fin "
890 LOCATE 12,7;PRINT "moderne
edieval digital"
900 LOCATE 12,8:PRINT "nouveau
raphique réduit
910 LOCATE 11,12;PRINT "[mots]
>QX
>TC
>ZK
:kr$(1.3)
="gothiq
>GT
':kr$(2,3)
='-inediev
>PQ
':kr$(3,3)
="graphi
>0Y
krt(4,3) =
"load":k
>ZG
data
g
>L0
main
m
>PC
gras
9
>PD
[taille]
[
>HH
DI5COLOQY
V»rsion 5.1
POUR VOUS SURPASSER
3 Programmes en 1
pour votre Amstrad CPC
L’EDITEUR:
Un Editeur universel de secteurs et de fichiers. Grâce à sa boîte à outils
exceptionnelle, (Désassembleur, Calcuiotrice, Listeur Basic...) tout devient possible.
LE COPIEUR:
Un Copieur intégral pour la sauvegarde de vos disquettes et cassettes.
Il vous étonnera por ses performances et sa simplicité d'utilisation.
L'EXPtOREUR.
Un graphique animé en 'Temps Réel' qui vous révélera tous les secrets de vos
disquettes. Un programme sons équivalent.
LES 7 POINTS FORTS DE DISCOLOGY
> La facilité : Grâce aux Fenêtres, aux Menus Déroubnts et à l'Aide Intégrée.
> La vitesse : 160 Ko de Langage Machine pur 1
y La documentation : Un Manuel complet et une notice technique approfondie.
> La compatibilité : Il gère toutes les extensions mémoire et les lecteurs 51/4 pouces.
> La performance : Incroyal^e et absolue,
y L'inédit : Du vraiment jamais vu I
> La référence : Des milliers d'utilisateurs enthousiastes en France comme
à l'Etranger. DISCOLOGY est reconnu et acclamé par b presse internotbnole.
Revendeurs, contoctez-nous I
DISCOLOGY Version 5.1 est disponible immédiatement, sons frais de port,
auprès de
MERIDIEN Informotfqu*
5 «t 7, La canabièra 13001 Marsaill* Tél. : 91.94.15.53
BON DE COMMANDE ^
Variion 5.1
pour Amstrad CPC Disponibilito ImmAdioto.
□ Je commande DISCOLOGY au prix de 350 F i I
□ Je commande Master Save V 3.2 (Copieur seul) ou prix de 190 F
□ Je possède déjà Master Save et je commande DISCOLOGY.
Je joins ma disquette Master Save et je ne paye que 160 F
Je règle ma commande :
□ par chèque joint (port grotuit)
□ contre-remboursement (-f 30 F de frais de port)
Nom :_
Adresse ;
.Prénom :.
Code Postal : ,
Tèl.:_
Ville: .
A retourner à MERIDIEN Informatique
5 et 7, La Canebière -13001 MARSEILLE
01
CPC n° 36-Juillet/Août 1988
89
NEWS 91.50.80.41
load] [sav'e]"
920 kr=4: 3=243: G05UB 102ô:e0SUB 1090
930 affichage
940 ta=12:FDR i=l TO kr
950 LQCATE ta,t:+t
960 IF ch=i THEN PRINT CHR$(24);kr$(l!,i):CHRfi24) EL5
E PRINT kr$(k.i)
970 ta=Ta+LEN(kr$(k,i))+10
980 NEXT i
990 GOSüB lOBO
iÛOO '♦#*»*****if******»***#*#***»**# DEPLACEMENTS ***
*#»-»***#*»*it»###*#*#**#*
1010 IF a=242 THEN ch=ch-l:îF ch=0 THEN ch=kr
1020 IF a=243 THEN ch=ch+l:IF ch=kr+l THEN ch=l
1030 IF a=240 THEN GOSUB 1230
1040 IF 3=241 THEN GOSUB 1270
1050 IF a=13 THEN b=ch:GOTD 1320
1060 GOTO 940
1070 REM AFFICHAGE ET REPONSE PRES
ENTATION »*♦*♦♦♦»♦##♦♦♦*
1080 A$=INKEY$
1090 heure=INT((TIME/300)-datum):IF heure>59 THEN datum
=INT (TIME/300):heure=0;mi=(ni+l
llOt) IF INKEY(54)=0 THEN bb=bb+l:IF bb>26 THEN bb=0
1110 IF INKEY(27)=0 THEN pp=pp+l:IF pp>26 THEN pp=0
1120 IF INKEY(58)=0 THEN ee=ee+l:IF ee>26 THEN ee=0
1130 IF INKEY(9)=0 THEN GOTO 1770
1140 IF INKEY(3S)=0 THEN MD=MD+1:IF MD>2 THEN Î1D=0
1150 IF INKEY(67)=0 THEN GOTO 2340
1160 LQCATE 11,14:PRINT “MODE “:MD
1170 LOCATE 41.10:PRINT mi;"m";heure;"s"
1180 LOCATE 64,10;PRINT "border";bb:BORDER bb
1190 LOCATE 64,12:PRINT "paper ";pp:INl; l,pp
1200 LOCATE 64,14:PRINT "encre ":ee:INK O.ee
1210 IF A$="" THEN 1080 ELSE A=ASC(A$):RETURN
1220 '##«*♦»♦♦♦»♦♦*#**»♦♦*♦♦*# efface ANCIENNE LIGNE *
1230 FOR j=l TO 4:L0CATE tb,k+t:PRINT kr$(k,j):tb=Tb+LE
N(kr$(k,j))+10:NEXT j
1240 k=k-l:IF k<l THEN k=4:t=8 ELÈE t=5
1250 tb=12
1260 RETURN
1270 FOR j=l TO 4;L0CATE tb,k+t:PRINT krt(k,j);tb=Tb+LE
N(kr$(k,j))+10:NEXT j
1280 k=k+l:IF k>3 THEN k=4:t=8 ELSE t=5
1290 tb=12
1300 RETURN
1310 ' »**«**«*♦♦»»♦*♦♦*«♦**♦*♦*♦*»*♦♦# CHARGEMENT *♦
*♦***♦♦♦**#*♦♦#♦♦♦**♦♦*♦
1320 LOCATE 38,14:PRINT "♦» «♦";L0CATE 40,14:PR
INT kr$(k,ch)
1330 IF k=l THEN ON b GOTO 1370,1390,1410,1430
1340 IF k=2 THEN ON b GOTO 1450,1470,1490,1510
1350 IF k=3 THEN ON b GOTO 1530,1550,1570,1590
90
<
> 1360
IF k=
=4 THEN ON b GOTO 1620,1690,2190.2100
>KF
/DF
1370
LOAD
"l.bin".40700
>FA
;TC
1380
GOTO
1770
/NE
1390
LOAD
"2.bin". 40700
•RD
>0B
1400
GOTO
1770
:=MH
:>MJ
1410
LOAD
■'‘.bin’'.40'0C
F.A
>RQ
1420
GOTO
' ~7''*
M/'
1 :î-.
1430
LOAD
''5.bin'',4070C
>FE
>vW
1440
GDTC
1770
Nî.
/PF
1450
LOAD
"9.b in".40700
>Rri
/QJ
1460
GOTO
1770
>ND
>XD
1470
LOAD
"S.b in".40700
/RJ
1480
GOTO
1770
/MF
/LY
1490
LOAD
"7.bin", 40700
/RK
>NB
1500
GOTO
1770
>MJ
>W
1510
LOAD
"4.b in".40700
>RZ
y-JB
1520
GOTO
1770
/NA
1530
LOAD
"10.bin".40700
>RB
>YR
1540
GOTO
1770
>NC
>FF
1550
LOAD
"3.b in".40700
>RC
/BK
1560
GOTO
1770
>NE
1570
LOAD
"12.bin ",40700
■>RH
>XC
1580
GOTO
1770
/N6
>WR
1590
LOAD
"11.bin",40700
/TA
1600
GOTO
1770
/MK
/TZ
1610
#♦**♦♦♦***♦#*#*♦♦♦♦♦*♦*#*,(.4 N(0TS **»* 4444 * 4 ***
:-YA
>TG
>2B
>RJ
>AD
>BX
>JN
>RF
>PC
:>NU
>LY
>XH
1620 PRINT CHR$(7) m
1630 LOCATE 20,17:PRINT "mots :":LOCATE 27.17:INPUT root ;DA
I
1640 IF LEN(root$)>19 AND MD=1 THEN SOUND 1,153,10:30 tO >5C
1630
1650 IF LEN(fflot$)>9 AND MD=0 THEN SOUND 1,156,10:G0TG 1 >AA
630
1660 IF LEN(mot$)>29 AND MD=2 THEN SOUND 1,158,10:GOTO >BG
1630
1670 GOTO 940 >GC
1680 '♦****♦*♦♦**♦*♦**#»*»#♦#*«#«■♦ taille i-YH
»#♦»♦♦*#**♦♦♦*#»♦*♦«»*»
>DP
>EC
>LA
>FC
>DU
>FV
>LE
>EH
>XH
>MG
>KF
>KN
>KW j
1690 PRINT CHR$(7) ;.MH
1700 tai=tai+l;IF tai>4 THEN tai=l >BW
1710 IF tai=l T1€N LOCATE 27,14:PRINT"NQR" >KT
1720 IF tai=2 THEN LOCATE 27,14:PRINT"r)0L" >KC
1730 IF tai=3 THEN LOCATE 27,14;PRÎNT"DOT" >KN
1740 IF tai=4 THEN LOCATE 27,14;PRINT"D0H" >KC
1750 GOTO 940 >GB
1760 '♦#♦*»*♦*♦♦*♦*#*#♦*♦*♦*♦♦»**.* dessin *♦**♦*♦**♦# >YG
*♦*♦♦*»♦♦♦*♦*•»*♦*♦*♦♦***
1770 MODE md:INK 0,1 :INK 1,26;B0RDER 13 >FN
1780 CALL Ï(BC06,!(C0 >tlQ
1790 IF TAI=1 AND MD=0 THEN IF LEN(M0Tî)>9 THEN MOT$=LE >MX
FT$(M0T$,9)
1800 IF iTAI=2 OR TAI=3) AND MD=0 THEN IF LEN(MDT$)>9 T )AC
HEN M0T$=LeFT$<M0T$,9)
1810 IF (TAI=2 OR TAI=3) AND MD=1 THEN IF LEN(M0T$)>19 >DD
THEN M0T$=LEFT$(M0T$,19)
1820 y=23:y5=y;yl=25:y6=y 1 : x=l:x5=x: x1=a+LEN iisaïi) t x6=x /TZ
CPC n” 36- Juillet/Août 1988
l:b$=STRING$(>:l-i,CHRI{123;)
1830 IF MD=2 THEN X2=80 >3'v
1840 IF MD=I THEN x2=40 >00
1850 IF MD=0 THEN X2=20 >QN
1860 IF TAI=1 THEN IST >3Q
1370 IF TAI=2 THEN IDL >Q.T
1380 IF TAI=3 THEN :DT >QD
1890 IF TAI=4 THEN ÎDH >£1T
1900 IF TAI=2 OR TAI=3 THEN xl=xl*2:>:10=xl-2;tsille=l: >AR
ELSE }:l=xl;taiile=0
1910 IF INf;EY{9i=0 THEN SOUND 1,200,10:CALL ï-BCOà.MO : >UK
ERASE K'R$:GOTO 530 sauve mémoire
1920 IF INKEY.(16)=0 Tf£N GOTO 2270 'EFFACER >AJ
1930 IF INKEY(47)=0 THEN WINDON #l,x,:<l.y,yl:F1îINT #l,b >WY
$:CALL 8(BC06,S(40: ERASE KR$:GOTO 530
1940 IF INKEY(2)=0 THEN y5=y:y=y+2:y6=yl:yl=yl+2:x5=x:x >VJ
6=xl :GOTO 1990
1950 IF INKEY(0>=0 THEN y5=y:y=y-2:y6=yl:yl=yl-2:x5=x:x Æ
6=xl :BOTO 1990
1960 IF INi<EY(8)=0 THEN x5=x:x=x-l:x6=xl:xl=xl-l:y5=y;y /VQ
6=yl :GOTO 1990
1970 IF INKEY(l)=û THEN x5=x:x=x-fl:x6=xl:xl=xl+l:y5=y:y >VE
6=yl :GOTO 199C'
1980 ' ♦*#*♦*#*■»***♦♦***♦*♦**♦♦♦»♦**♦ TEST >ZA
*»*♦*♦********♦■»*#**#*♦*
1990 IF y<2 THEN y=2:yl=5:3QUND 1,100,1 >GD
2000 IF yi>25 THEN yl=25:y=23:SQUND 1,100,1 >KA
2010 IF x<l AND taille=l THOv x=l! xl=xl0:30üND 1,300.1 >XU
2020 IF xl>x2 AND taille=i THEN xl=x2:x=xl-xl0:S0UND 1. >FL
300,1
2030 IF x<l THEN x=I:xl=x+LEN(mot$):SOUND 1,100,1 >TF
2040 IF xl>x2 THEN xl=x2:x=xl-LENiiKit$):Sa.lND 1,1C»0,1 /YH
2050 WINDGW #l,x5,x6,y5,y6:PRINT #l.bf >FG
2060 WINDOW #l,x,xi,y,yl:PRINT 11,mot» >6P
2070 GOTO 1910 >t1H
2080 1 ST;GOTO 520
2090 '»#i(*»***'****#******'»***»**#* SAUVEGARDE ***♦♦»*♦♦ >YD
2100 PRINT CHR$(7):L0CATE 27,17:PRINT ''0/N'':L0CATE 30.1 >RN
7;ÎNPUT nomm»
2110 IF no»m»="n" OR no!nra»="N'' THEN LOCATE 27.17:FRINT ;FH
" "tGOTO 940 ELSE PRINT CHR$(7):L0 ChTE 27,17:
PRINT " ":LOCATE 27.17:INPUT nomm»
2120 MODE MD >AJ
2130 INK 0.1 :INK 1,26:BORDER 13 >YD
2140 CALL &BC06.&C0 >MF
2150 SAVE nomm». B,Z(COOO, 5(4000 -WF
2160 FOR 1=1 TO 500:NEXT I >Tg
2170 CALL S(BCû6,5(40:ERASE kr»;GOTO 520 >EB
2180 ■ CHARGER ***♦#♦♦*■*■1^* >YD
2190 PRINT CHR»(7):LOCATE 27,17;PRINT "0/N":LOCATE 30.1 >RF
7:INPUT nomm»
2200 IF nomffl»="n" OR nomra»=”N" THEN LOCATE 27.17:PRINT >FH
” "-.GOTO 940 ELSE PRINT CHR»(7) :LQCATE 27,17:
PRINT " '":LOCATE 27,17:INFUT nomm»
2210 MODE MD: INK 0,1 ;INK; 1.26:BORDER 13 /FC
2220 CALL S(BC06,S(C0 >ME
2230 LOAD nomm» >BK
2240 CALL 5(BB18: CALL 5(BC06,5(40 >WG
2250 ERASE kr»:GOTO 520 '1860 >RB
2260 CLS >ZK
2270 '«♦*♦♦#♦♦♦♦*♦****♦♦*♦♦♦**♦*** EFFACER **#♦♦♦♦♦♦*** >YD
#♦***«♦♦»*»**♦«*♦*♦**♦*♦
2280 CALL 5(BC06,5(C0 :^MA
2290 iST:LOCATE 5.13;PRINT 'EFFACER";FOR M=1 70 1000:NE >EZ
XT M
2300 MODE MD:INk; 0,1 :INI<;: 1,26;BORDER 13 >FC
2310 CALL 5(BC40 >TJ
2320 GOTO 1910 >MF
2330 '♦***♦♦♦* QUITTE ****♦«*♦ >YA
2340 LOCATE 27,17;INPUT "Voulez-vous quitter (0/N)'';0» >HX
2350 IF 0»="0" OR G»="o" THEN CLS;NEW ELSE GOTO 2360 >TX
2360 LOCATE 27,17;PRINT " >ED
":GOTO 940
• 2370 FIN ********** >YE#
1 ' *** ELARGIE ♦**
2 'SAVE "1".B.40700.2048
5 SYMBOL AFTER 0
10 FOR i=40700 TO 42748
20 READ a»;a=VAL("5(“+a»)
30 POKE i.a:NEXT i
40 DATA FF,C3,C3,C3,.C3.C3,C3.FF
50 DATA FF.Cû,CO.CO.CÛ,CO,CO,CO
60 DATA 18,18,18,18,18,18,18,FF
•
70 DATA Oo.Oo.V3.Uo.O j, 03,03.rF
30 DATA OC.18.30.7E,OC,18.30.00
90 DATA FF.C3,E7,DB.DB.E7.C3.FF
100 DATA 00.01,03,06,CC.78,30.00
110 DATA 3C,66,C3,C3.FF.24.E7,00
120 DATA 00,00,30,60,FF,60,30,00
130 DATA OO,0O,OC,06.FF.06,OC.OO
140 DATA 18,18,1B,18.DB,7E,3C,18
150 DATA 1B,3C,7E.DB,18,1B,18,18
160 DATA 1B,5A,3C,99,DB,7E,3C,1B
170 DATA 00,03,33.63,FE,60.30,00
180 DATA 3C,66,FF,DB,DB,F,66,3C
190 DATA 3C,66,C3,DB.DB,C3,66,3C
200 DATA FF,C3.,C3,FF,C3,C3,C3.F
210 DATA 3C.7E,DB.DB.DF,C3,66,3C
220 DATA 3C,66,C3,DF,DB,DB,7E,3C
•
230 DATA 3C.66,C3.FB,DB,DB,7E.3C
240 DATA 3C,7E.DB,DB.FB.C3,66,3C
250 DATA 00.01,33.1E.CE.7B,31.00
26(1 DATA 7E,6è.66,6fa,66,66,6û,E7
270 DATA 03.03.03, FF, 03.03,03,00
280 DATA FF,66.3C,1B,18,3C.66.FF
290 DATA 18il8,3C,3C.X.3C,ia,18
300 DATA 3C,66,66,30.18, CtO, 18,00
310 DATA 3C,66,C3,FF,C3,C3.66,3C
320 DATA FF,DB,DB,DB,FB,C3,C3,FF
330 DATA FF,C3,C3,FB,DB,DB,DB,F
340 DATA FF,C3,C3.DF,DB,DB,DB,F
350 DATA FF.DB,DB,DB,DF,C3.C3,FF
360 DATA 00,00,00,00,00,00,00,00
370 DATA 18.18,18,18,18,00,18,00
380 DATA 6C,6C,6C, 00,00,00,00,00
390 DATA 6C.6C,FE,6l.FE. 6C,6C,00
400 DATA 18,3E,5B.3C,1A,7C,18.00
410 DATA 00,C6,CC.1B,30.66,C6.00
420 DATA 38,6C.3B.76,DC,CC,76,00
430 DATA 18.18,30,00,00,00,00,00
440 DATA OC.18,30,30,30,18,OC,00
450 DATA 3O.18,OC,0C,OC,18,3O,0(i
460 DATA 00,06,3E,1C,1C.3E,OB.OO
470 DATA 00,18.18,7E,18,18,00.00
480 DATA 00,0(i,00,00,00,18,18,30
490 DATA 00,00,00,7E,00,ÛO,00,00
500 DATA 00,00,00,00,00,18,18.00
510 DATA 06,OC,18,30,60.CO,30,00
520 DATA 7C,C6,CE,D6,E6.C6,7C,00
530 DATA 18,38,18,18,18,18,3C,00
540 DATA 7C,C6,06,7C,CO,C6,FE,00
CPC n°36- Juillet/Août 1988
91
550 DATA 7C,C6,06,3C,(W>,:6,7C,00
560 DATA 1C,3C,6C,CC,FE,OC,OC,00
570 DATA FC,C0,C0,FC,O6,C6,7C,0O
580 DATA 7C,C6,C0,FC,C6,C6,7C,00
590 DATA FE,C6,06,18,38,30,30,00
600 DATA 78,86,C6,7C,C6,C6,7C,00l
610 DATA 78,86,86,7E,06,86,78,00
620 DATA 00,00,18,18,00,18,18,00
630 DATA 00,00,18,10,00,18,18,30
640 DATA 08,18,30,60,30,18,08,00
650 DATA 00,00,7E,00,00,7E,00,00
660 DATA 60,30,18,08,18,30,60,00
670 DATA 78,86,06,18,30,00,30,00
682.DATA 78,86,DE,D6,DE,80,78,00
690 DATA 78,86,86,FE, 86,86,86,00
700 DATA F8,86,86,F8,86,86,F8,00
710 DATA 78,86,80,80,80,86,78,00
720 DATA F8,86,86,86,86,86,F8,00
730 DATA FE,80,80,F8,80,80,FE,00
740 DATA FE,80,80,F8,80,80,80,00
750 DATA 7E,80,80,8E,86,86,7E,00
760 DATA 86,86,86,FE,86,86,86,00
770 DATA 7E,18,1S,18,1B,18,7E,00
780 DATA 3E,08,08,OC,88,88,78,00
790 DATA 86,88,F8,F8,88,86,86,00
800 DATA 80,80,80,80,80,80,FE,00
810 DATA 86,EE,FE,D6,C6,86,86,00
820 DATA 86,E6,F6,DE,8E,86,86,00
830 DATA 78,86,86,86,86,86,78,00
840 DATA F8,86,86,F8,80,80,80,00
850 DATA 78,86,86,86,DA,8C,76,00
860 DATA F8,86,86,F8,D8,8C,C6,00
870 DATA 78,86,80,78,06,86,78,00
880 DATA TE,18,18,18,18,18,18,00
890 DATA 86,86,86,86,86,86,78,00
900 DATA 86,86,86,68,68,38,10,00
910 DATA 86,86,D6,D6,D6,FE,68,00
950 DATA 86,68,38,38,68,86,86,00
930 DATA 66,66,66,38,18,18,18,00
940 DATA FE,06,08,18,30,60,FE,00
950 DATA 38,30,30,30,30,30,38,00
960 DATA 80,60,30,18,08,06,02,00
970 DATA 38,08,08,08,08,08,38,00
980 DATA 18,3C,7E,18,1B,18,18,00
990 DATA 00,00,00,00,00,OOjOO,F
1000 DATA 30,18,08,00,00,00,00,00
1010 DATA 00,00,78,06,7E,86,7E,00
1020 DATA 80,80,F8,86,C6,86,F8,00
1030 DATA 00,00,78,80,80,80,78,00
1040 DATA 06,06,7E,86,86,86,7E,00
1050 DATA 00,00,78,86,FE,80,78,00!
1060 DATA 3C,66,60,FB,60,60,60,00 '
1070 DATA 00,00,78,86,86,7E,06,F8
1080 DATA 80,80,FC,C6,C6,C6,86,00
1090 DATA 18,00,38,18,18,18,38,00
1100 DATA 06,00,06,06,06,86,86,78
1110 DATA 80,80,88,D8,F8,88,86,00
1120 DATA 38,18,18,18,18,18,18,00
1130 DATA 00,00,6C,FE,D6,D6,D6,00
1140 DATA OO,0O.F8.86,86,86,86,00
1150 DATA 00,00.78,86,86,86,78,00
1160 DATA 00,00,FC,86,C6,F8,C0,C0
1170 DATA 00.00,7E,C6,C6,7E,06,07
1180 DATA 00,00,BC,E6,8Û,80,80,00
1190 DATA 00,00,78.EO, 78,OE,FC,00
1200 DATA 30,30,FE,30,30,30,1E,00
1210 DATA 00.00,86,86,86,86,78,00
1220 DATA 00,00,86,86,68,38,10,00
1230 DATA (X\00,D6,D6.D6.FE,6C,00
1240 DATA 00,00,86,68,38,68,86,00
1250 DATA 00,00,C6,C6,C6,7E,06,FC
1260 DATA 00,00,FE,18,38,70,FE.00
1270 DATA 0E,18,18,70,18,1S,0E,00
1280 DATA 18,18,18,00,18,18,18,00
129C DATA 70,18.18,08,18,18,70,00
1300 DATA 76,DC,00,00,00,Oû,'00,00
1310 DATA 88,33,88,33,88,33,88,33
1320 DATA 00,00,00,00,00,00,00,00
1330 DATA FO.FO,FO,FO,00,00,00,00
1340 DATA OF.OF,OF,OF,00,00,00,00
1350 DATA FF,FF,FF,FF,00,00,00,00
1360 DATA Oû,00,00,00,FO,FO,FO,FO
1370 DATA FO,FO,FO,FO,FO,FO,FO,FO
1380 DATA OF,OF.OF.OF,FO,FO,FO,FÛ
1390 DATA FF,FF,FF,FF,FO,FO.FO,FO
1400 DATA ÜO.OO.OO,OO.OF,OF,OF.OF
1410 DATA FO.FO,FO,Fô,OF,OF,OF,OF
1420 DATA OF,OF,OF,OF,OF,OF,OF,OF
1430 DATA FF,FF,FF,FF.OF,OF,OF.OF
1440 DATA 00,00,00,00,FF.FF,FF,FF
1450 DATA FO,FO.FO,FO.FF.FF.FF,FF
1460 DATA OF,OF,OF,OF.FF,FF,FF,FF
1470 DATA FF.FF,FF,FF,FF,FF.FF.FF
1480 DATA 00,00,00,18,18,00,00,00
1490 DATA 18,18,18,18,18.00,00.00
1500 DATA 00,00,00,1F,1F,00,00,00
1510 DATA 18,13,18,1F,«)F,00,00,00
1520 DATA 00,00,00.18,18,18.18.18
1530 DATA 18,18,18.18,18,18,18,18
1540 DATA 00,00,00,0F,IF,18,18.18
1550 DATA 18,18,18,1F,1F,18,18,18
1560 DATA 0Û,00,00,FB,FB,00,00,00
1570 DATA 18,18,18.F8,F0.00.00.00
1580 DATA 00.00,00,FF,FF,00,00,00
1590 DATA 18,1B,18,FF,FF,00,00,00
1600 DATA 00,00,00,FO,F8,18,18.18
1610 DATA 18,18,18,F8,F8,18,18,13
1620 DATA 00,00.00,FF,FF,18,18,18
1630 DATA 18,18.18,FF.FF.18.18,13
1640 DATA 10,38,68,86,00,00.00,00
1650 DATA 08.18,30,00,00,00,00,00
1660 DATA 66,66.00,00,00,00,00,00
1670 DATA 78,86,80,FO,80,86,FE,00
1680 DATA 7C.82,BA,A2,BA,52,7C,00
1690 DATA 7E,F4,F4,74,34,34,34,00
1700 DATA 1E,30,38,6C.38,18,FÛ,00
1710 DATA 18.18,08,00,00,00,00,00
1720 DATA 40',C0.44,4C,54,1E,04,00
1730 DATA 40,80,48,52,44,08,1E,00
1740 DATA EO,10,62,16,EA,0F,02,00
1750 DATA 00,1B,1B,7E,18,18,7E,Û0
1760 DATA 18,ia,00,7E,00,18,IB,00
1770 DATA 00,00,00,78.06,06,00,00
1780 DATA 18,00,18,30,66,66,38,00
1790 DATA 18,00.18,18,18,18,18,00
1800 DATA 00,00,73,DE,CC,DE,73,00
1810 DATA 78,86,86,FC,86,86,F3,80
1820 DATA 00,66,66,38,66,66,38,00
1830 DATA 38,60,60,38,66,66,38.00
1840 DATA 00,00,lE,30,78,30,lE,00
1850 DATA 38.68.86,FE,86,68,38,00
1860 DATA 00,80,60,30,38,68,86,00
1870 DATA 00,00,66,66,66.78.60,60
1880 DATA 00,00,'X,FE, 68,68,68,00
1390 DATA 00,ÛO,00,7E,DB,D8.70,00
1900 DATA 03,06,<j8,38,66,38,60,80
1910 DATA 03.06,08,66,66,38,60,80
1920 DATA 00,E6,38,18.38,68,87,00
1930 DATA 00,00.66,83.DB,DB,7E,00
1940 DATA FE,86,60,30,60,86,FE,00
1950 DATA 00,78,86,86,86,68,EE,00
1960 DATA 18,30,60,80,80,00,00,00
1970 DATA 18,08,06,03,01,00,00.00
1980 DATA 00,00,00,01,03,06,08,18
1990 DATA 00,00,00,80,80,60,30.18
2000 DATA 18,38,66,83,81,00,00.00
2010 DATA 18,08.06,03,03,06,X, 18
2020 DATA 00,00,00,81,83,66,38.18
2030 DATA 18,30,60,80,80,60.30,18
2040 DATA 18,30,60,81,83,06,08.18
2050 DATA 18,08,06,83,81.60,30,18
2060 DATA 18,38,66,83,83,66,38,18
2070 DATA 83,E7,7E,38,3C,7E,E7,83
2080 DATA 03,07,OE,18,38,70,80,80
2090 DATA 80,80,70,38,18,OE,07.03
2100 DATA 88,88,33,33,88,88,33.33
2110 DATA AA,55,AA,55,AA.55,AA,55
2120 DATA FF,FF,00,00,00,00,00,00
2130 DATA 03,03,03,03,03,03,03,03
2140 DATA OÛ,()0,00,00.00,00,FF,FF
2150 DATA 80,80,80.80,80,80,80.80
2160 DATA FF,FE,F8,F8,F0.E0,80,B0
2170 DATA FF,7F,3F,lF,Cf,07,03,01
2180 DATA 01,03,07,0F,1F,3F,7F,FF
2190 DATA 80,80,E0,F0,FS.F8,FE,FF
2200 DATA AA,55,AA,55,00,00,00,00
2210 DATA OA,05,OA,05,OA,05.OA,05
2220 DATA 00,00,00,00,AA,55,AA,55
2230 DATA A0.50.A0.50,AO,50,AO,50
2240 DATA AA,54,A8,5Û,AO,40,80,00
2250 DATA AA,55,2A,15,0A,05,02,01
2260 DATA 01,02,05,OA,15,2A,55.AA
2270 DATA 00,80,40,AO,50,AS,54,AA
2280 DATA 7E,FF,99,F,BD,83,FF,7E
2290 DATA 7E,FF,99,FF,C3,BD,FF,7E
2300 DATA 38,38,FE,FE,FE,10,38,00
2310 DATA 10,38,78.FE,78,38,10,00
2320 DATA 6C,FE,FE,FE,78,38,10,00
2330 DATA 10,38,78,FE,FE,10,38,00
2340 DATA 00,38,66,83,83,66,38,00
2350 DATA 00,3C,7E,FF,FF,7E,3C,00
2360 DATA 00,7E,66,66,66,66,7E,00
2370 DATA 00,7E,7E,7E,7E,7E,7E,00
2380 DATA 0F,07,0D,78.CC,CC,CC,7B
2390 DATA 38,66,66,66,38,18,TE,18
2400 DATA X,0C,X,X,0C,3C,78,38
2410 DATA 18,1C,1E,1B,1B,78,F8,70
2420 DATA 99,5A,24,C3,C3,24,5A,99
2430 DATA 10,38,38,38,38,38,78,D6
2440 DATA 18,3C,7E,FF,18,18,18,1B
2450 DATA 18,18,1B,1B,FF,7E,3C,18
2460 DATA 10,30,70,FF,FF,70,30,10
2470 DATA 0B,0C,0E,FF,FF,0E,X,O8
2480 DATA 00,00,18,3C,7E,FF,FF,00
2490 DATA 00,OO,FF,FF,7E,38,18,00
2500 DATA 80,EO,FB,FE,F8,EO,80,00
2510 DATA 02,0E,3E,FE,3E,0E,O2,0O
2520 DATA 38,33,10,FE,10,28,28,68
2530 DATA 38,38,10,FE,10,28,44,82
2540 DATA 38,38,12,78,90,28,24,22
2550 DATA 38,38,90,78,12,28,48,88
2560 DATA 00,3C,18,38,38,38,18,00
2570 DATA 3C,FF,FF.18,X, 18,30,18
2580 DATA 18,3C,7E,18,18,7E,3C,1B
2590 DATA 00,24,66,FF,FF,66,24,00
2600 DATA 00,00,00,00,00,00,00,00*
1 ' DATA »«■*
2 'SAVE "2*,8,40700,2048
5 SYMBOL ARER 0
10 FOR i=40700 TO 42748
20 READ â$:a=VAL("l("+a$)
30 POKE i,a:NEXT i
40 DATA FF,C3,C3,C3,C3,C3,C3,FF
50 DATA FF,CO,CO,CO,CO,CO,CO,CO
60 DATA 18,18,18,18,18,18,1B,FF
70 DATA 03,03,03,03,03,03,03,FF
80 DATA 08,1B,30,7E,X, 18,30,00
90 DATA FF,C3,E7,DB,DB,E7,C3,FF
100 DATA 00,01,03,06,88,78,30,00
110 DATA 3C,66,C3,C3,FF,24,E7,00
120 DATA 00,00,30,60,FF,60,30,00
130 DATA 00,00,08,06,F,06,X,00
140 DATA 18,1B,18,18,DB,7E,3C,18
150 DATA 18,38,7E,DB,18,18,18,18
160 DATA 18,5A,38,99,DB,TE,38,18
170 DATA 00,03,33,63,FE,60,30,00
180 DATA 3C,66,FF,DB,DB,FF,66,3C
190 DATA 3C,66,C3,DB,DB,C3,66,3C
200 DATA FF,C3,C3,FF,C3,C3,C3,FF
210 DATA 3C,7E,DB,DB,DF,C3,66,3C
220 DATA 3C,66,C3,DF,DB,DB,7E,3C
230 DATA 3C,66,C3,FB,DB,DB,7E,3C
240 DATA 3C,7E,DB,DB,FB,C3,66,38
92
CPC n'" 36- Juillet/Août I98<
250 DATA 00,01,33.1E,CE,7B,31,Û0
260 DATA 7Ei66,66,66,66,6à,à6)E7
270 DATA 03,03,03,FF,03,03,03, 00
280 DATA F,66,3C,18,18,3C,66,FF
290 DATA 18,lB,3C,3C,3C,3C,13.ia
300 DATA 30,66,66,30,18,00,18,00
310'DATA 3C,6â,C3,FF,C3,C3,66,3C
320 DATA F,DB,DB,DB,FB,C3,C:3,FF
330 DATA FF,C3,C3,FB,DB,DB,DB,FF
340 DATA FF,C3,C3,DF,DB,DB,BB.FF
350 DATA FF,DB,DB,DB,DF,C3,C3,F
360 DATA 00,00,00.00,00,00,00,00
370 DATA 18,18,18,08,08, 'OO, 08. 00
380 DATA 6C. 60,24.00,00,00, 00,00
390 DATA 24,24,7E,24,7E,24,24.00
400 DATA 10.7E,50.7E.16.7E.10.00
410 DATA 00,42,44.08,10.32.62.00
420 DATA 7C,64.7C.CE,C8.C8,F6,00
430 DATA 18,18,08,00,00.00,00,00
440 DATA 08,10,30,30,30,10,08,00
450 DATA 20.10,18.18.18,10,20.00
460 DATA 10,54,38,FE,38.54,10,00
470 DATA OO.IO.IO.TC.IO.IO.'OO.CO
480 DATA 00,00,00,00,00,18,18,08
490 DATA 00,00,00,78.00,00,00,00
500 DATA 00,00,00,00,00,18.18,00
510 DATA 02,06,08,18,30,40.30,00
520 DATA FE.82,B2,82,82,82.FE,00
530 DATA 10,10.10,18.18,13.18,00
540 DATA FE,82,06,06,FE,8Û,FE.OO
550 DATA FE,82.02.3E.06,a6.FE,00
560 DATA B0,80,88.88,FE,08,08,00
570 DATA FE.80.FE,02,û6.a6,FE,û0
580 DATA FE,80,FE,B2,82,82,FE,0C
590 DATA F8,84,04.1E,Û8,08.08,«
600 DATA FE,82,FE,B2,82.82.FE,00
610 DATA FE.82.B6.86,FE.02.FE.Û0
620 DATA 00,00.18,18,00,18,18,00
630 DATA 00.00,18,18,00.18,16.08
640 DATA 08,10,20,40.20,10,08,00
650 DATA 00.00.78,00.78,00,00,00
660 DATA 20,10,08,04,08.10,20,00
670 DATA FE,82.82,1E.13,00,18.00
680 DATA FE,82,9A.DA.DE.80,F8,00
690 DATA FE.82,82,FE,82,82,82,00
700 DATA F8,44,44, TE,62,62,FE. 00
710 DATA FE,82,80,80.80,82. FE,00
720 DATA FE,42,42,62,62.62,FE, 00
730 DATA FE,42,40,78.60.62,FE, 00
740 DATA FE,42,40,78.60.60,FO,00
750 DATA FE,32,80,8E,82,82,FE.00
760 DATA 82,82,82,FE,82,82,82, 00
770 DATA 78,10,10,18,18,18,78,00
780 DATA lE,04,04,Oe,88.8C,F8.00
790 DATA 88,88.88,F8,84,84,86,00
800 DATA 80,80,80,80,80,80,FE. 00
810 DATA FE.92,92,D2,D2.82,82,00
820 DATA F2,92,92,DA,8A,8A,8E,00
830 DATA FE,86,86,86.32.a2,FE,00
840 DATA FE,42.42,7E,60,60,FO. 00
850 DATA FE.82.82,DA.CE,E€.F6,00
860 DATA FE,42.42,7E.64,66.F2,00
870 DATA FE,C2,80,FE.02,82,FE,00
880 DATA FE,10.10,18,18.18,18,00
890 DATA 82,82,82,82,82.82,FE,00
900 DATA 86,48,48,48.68.38.10.00
910 DATA 86,86,86,'96,92,92.FE,00
920 DATA E6,26,26,FE,86,88,8E,00
930 DATA 82,82.82,FE,10.10,38.00
940 DATA FE,86.1E,10,FO,B2.FE.OO
950 DATA 38,20,20,30.30.30,38.00
960 DATA 80,60,30,18,08,04,02,00
970 DATA 38,04,04,08,08,08,38,00
980 DATA 10,38,78,54,10,10,10,00
990 DATA 00,00,00,00,00,00,00,FF
1000 DATA 18,18,10,00,00,00,00,00
1010 DATA 00,00,78,04,F8,84,FE,00
1020 DATA 80,80,FE,82,82,82,FE,00
1030 DATA 00,00,FE,B2,80,82,FE,00
1040 DATA 02,02,FE,B2,82,E2,FE,00
1050 DATA 00,00,FE,B2,FE,80,FE,00
1060 DATA 38,20,20,78,20,30,30,30
1070 DATA 00,00,FE,86,86,FE,02,TE
1080 DATA 80,80,FE,82,82,e2,82,00
1090 DATA 10,00,10,10,-lB, 18,18,00
1100 DATA 02,00,02,02,06,06,86,FE
1110 DATA 80,80,88,88,FB,88,8E,00
1120 DATA 30,10,10,18,18,18,18,00
1130 DATA 00,00,FE,92,D2,D2,82,00
1140 DATA 00,00,FE,42,62,62,62,00
1150 DATA 00,00,FE,B2,e2,e2,FE,00
1160 DATA 00,00,FE,82,82,FE,80,EO
1170 DATA 00,00,F8,84,84,FE,06,06
1180 DATA 00,00,FE,42,60,60,60,00
1190 DATA 00,00,FE,80,FE,06,FE,00
1200 DATA 20,20,FE,20,30,32,3E,00
1210 DATA 00,00,B2,82,E2,82,FE,00
1220 DATA 00,00,82,82,EE,28,38,00
1230 DATA 00,00,82,02,1)2,92,FE,00
1240 DATA 00,00,EE,2B,7B,68,EE,00
1250 DATA 00,00,86,86,86,FE,02,7E
1260 DATA 00,00,7E,02,7E,60,FE,00
1270 DATA 08,10,10,20,10,10,08,00
1280 DATA 18,18,18,00,18,18,^8,00
1290 DATA 20,10,10,08,10,10,20,00
1300 DATA 28,34,00,00,00,00,00,00
1310 DATA 88,33,88,33,88,33,88,33
1320 DATA 00,00,00,00,00,00,00,00
1330 DATA FO,F0,FO,F0,OO,0O,Ô0,0O
1340 DATA OF,OF,0F,OF,OO,O0,0O,OO
1350 DATA F,FF,FF,F,00,00,ÔO,00
1360 DATA 00,00,00,00,FO,FO,PO,FO
1370 DATA F0,F0,F0,F0,F0,F0,F0,F0
1380 DATA OF,OF,OF,OF,FO,FO,FO,FO
1390 DATA F,F,F,F,F0,F0,F0,F0
1400 DATA 00,00,00,00,0F,0F,0F,0F
1410 DATA FO,FO,FO,FO,OF,OF,GF,OF
1420 DATA OF,OF,OF,OF,OF,OF,OF,OF
1430 DATA FF,FF,FF,FF,ÛF,OF,OF,OF
1440 DATA 00,00,00,00,F,FF,F,F
1450 DATA F0,F0,F0,F0,FF,FF,F,FF
1460 DATA 0F,0F,0F,0F,FF,FF,F,F
1470 DATA F,FF,F,FF,F,F,F,FF
1480 DATA 00,00,00,18,18,00,00,00
1490 DATA 18,18,18,18,18,00,00,00
1500 DATA 00,00,00,1F,1F,00,00,00
1510 DATA 18,18,1B,1F,OF,00,00,00
1520 DATA 00,00,00,18,18,18,18,18
1530 DATA 18,18,18,18,18,18,18,18
1540 DATA 00,00,00,0F,IF,18,18,18
1550 DATA 18,18,18,1F,1F,1B,18,18
1560 DATA 00,00,00,F8,FB,00,00,00
1570 DATA 18,18,13,FB,FO,00,00,00
1580 DATA 00,00,00,FF,FF,00,00,00
1590 DATA 18,18,18,FF,FF,00,00,00
1600 DATA 00,00,00,FO,F8,18,18,18
1610 DATA ia,18,18,F8,F8,lB,lB,13
1620 DATA 00,00,00,FF,FF,18,18,18
163Ci DATA 18,18,18,FF,FF,18,18,18
1640 DATA 10.3B,6C,C6,00,00,00,00
1650 DATA OC. 18,30,00,00,00,'00,00
1660 DATA 66,66,00,00,00,(00,00,00
1670 DATA 3C,40,40,FO,60,62,FE,00
1680 DATA 7C,82,BA,A2,BA,82,7C,00
1690 DATA 7E,F4,F4,74,34,34,34,00
1700 DATA 1E,30,38,6C,38,18,F0.00
1710 DATA 13,18.OC,00,00,00,00,00
1720 DATA 40,40,50,54,54,1E,04,00
1730 DATA 40,40,5E,46,5E,10,1E,00
1740 DATA E0.20.E8,2B,EA,OF,02,00
1750 DATA 00.18,18.7E,18,1B,7E,00
1760 DATA 18,18,00,7E,00,18,18,00
1770 DATA 00,00,00,7E,06,06,00.00
1780 DATA 18,00,18,30,66,66,3C.00
1790 DATA 18,00,18,18,18,18,18,00
1800 DATA 00,00,73,DE,CC,DE,73,00
1810 DATA 7C.C6,C6,FC,C6,C6,FB,C0
1820 DATA 00,66,66,3C,66,66,3C,00
1830 DATA 3C,60,60,3C,66,66,3C,00
1840 DATA 00,00,1E,30,7C,30,1E,00
1850 DATA 3B,6C,C6,FE,C6,6C,38,00
1860 DATA 00,CO,6Û,30,38,6C,C6,00
1870 DATA 00,00,66,66,66,7C,60,60
1880 DATA 00,00,00,FE,6C,6C,6C,00
1890 DATA 00,00,00,7E,D8,D8.70,00
1900 DATA 03,06,OC,3C,66,3C,60,CO
1910 DATA 03,06,OC,66,66,3C.60,CO
1920 DATA 00,E6,3C,1B,38,6C.C7,00
1930 DATA 00,0O,66,C3,DB,DB,7E.00
1940 DATA FE,C6,60,30,60,C6,FE,00
1950 DATA 00.7C,C6,C6.C6,6C,EE,00
1960 DATA 18,30,60,CO,80,00,00,00
1970 DATA 18,OC,06,03,01,00,00,00
1980 DATA 00,00,00,01,03,06,X,18
1990 DATA 00,00,OÛ,80,CO,60,30,1B
2000 DATA 18,3C,66,C3,81,00,00,00
2010 DATA 18,ÛC,06,03,03,06,OC,18
2020 DATA 00,00,00,81,C3,66,3C,18
2030 DATA 18,30,60,CO,CO,60,30,18
2040 DATA 18,30,60,C1,B3,06,0C,18
2050 DATA 18,0C,06,83,C1,60,30,18
2060 DATA 18,3C,66,C3,C3,66,3C,1B
2070 DATA C3,E7,7E,3C,3C,7E,E7,C3
2080 DATA 03,07,0E,1C,38,70,E0,C0
2090 DATA CO,EO,70,38,1C,0E,07,03
2100 DATA CC,CC,33,33,CC,CC,33,33
2110 DATA AA,55,AA,55,AA,55,AA,55
2120 DATA FF,FF,00,00,00,00,ÛO,00
2130 DATA 03,03,03,03,03,03,03,03
2140 DATA CiO,00,00,00,00,00,FF,FF
2150 DATA CO,CO,CO,CO,CO,CO,CO,CO
2160 DATA FF,FE,FC,F8,F0,E0,C0,80
2170 DATA FF,7F,3F,1F,OF,Û7,03,01
2180 DATA 01,03,07,0F,1F,3F,7F,FF
2190 DATA 80,C0,E0,Fû,FB,FC,FE,FF
2200 DATA'AA,55,AA,55,00,00,00,00
2210 DATA 0A,05,OA,O5,0A,05,OA,05
2220 DATA 00,00,00,00,AA,55,AA,55
2230 DATA Aû,50,AO.50,AO,50,AO,50
2240 DATA AA,54,AS,50,AO,40,80,00
2250 DATA AA,55,2A,15,0A,O5,O2,01
2260 DATA 01,02,05,OA,15,2A,55,AA
2270 DATA 00,80,40,A0,50,A8.54,AA
2280 DATA 7E,FF,99,FF,BD,C3,F,7E
2290 DATA 7E,FF,99,FF,C3,BD,FF.7E
2300 DATA 38,38,FE,FE,FE,10,38,00
2310 DATA 10,38,7C,FE,7C,3B,10.00
2320 DATA 6C,FE,FE,FE,7C,38,10,00
2330 DATA 10,38,7C,FE,FE,10,38,00
2340 DATA 00,3C,66,C3,C3,66,3C,00
2350 DATA 00,3C,7E,FF,FF,7E,3C,00
2360 DATA 00,7E,66,66,66,66,7E.00
2370 DATA 00,7E,7E,7E,7E,7E,7E,00
2380 DATA 0F,07,0D,78,CC,CC,CC,78
2390 DATA 3C,66.66,66,3C,18,7E,18
2400 DATA 0C,0C,0C,0C,0C,3C.7C,3B
2410 DATA 18.1C,1E,1B,18,7S,F8.70
2420 DATA 99,5A,24,C3,C3,24,5A,99
2430 DATA 10,38,38,38,38,38,7C,D6
2440 DATA 1B,3C,7E,FF,18,16,1B,18
2450 DATA 13,18,1S,18,FF,7E,3C,1B
2460 DATA 10,30,70,FF,FF,7Û,30,10
2470 DATA 08,OC.OE,FF,FF,OE,OC,08
2480 DATA 00,00,18,3C,7E,FF,FF,00
2490 DATA 00,00,FF,FF,7E,3C,18,00
2500 DATA 80,E0,F8,FE,FB,E0.80,00
2510 DATA 02,ÛE,3E,FE,3E.C£,02,00
2520 DATA 38,38,92,7C,10,38,28,6C
2530 DATA 38,38,10,FE,10,3B,6C,C6
2540 DATA 38,38,12,7C,90,38,2C,26
2550 DATA 38,38,90,7C,12,38,68,C8
2560 DATA 00,3C,18,3C,3C,3C,18,00
2570 DATA 3C,FF,FF,18,0C,18,30,18
2580 DATA 10,38,7C,10,10,7C,38,10
2590 DATA 00,24,66,FF,FF,66,24,00
2600 DATA 00,00,00,00,00,00,00,00»
CPC n" 36- Juillet/Août 1988
93